Hadoop集群环境搭建与应用回顾

news/2024/5/20 2:22:10 标签: hadoop, 大数据, hdfs

文章目录

    • 一、 实训项目名称
    • 二、 学习情况小结
    • 三、 项目中用到的知识点
    • 四、 实训项目中负责功能板块
    • 五、 实训项目实现
    • 六、 实训项目过程中遇到的问题及解决方法
    • 七、实训体会与心得

一、 实训项目名称

Hadoop集群环境搭建与应用

二、 学习情况小结

实操一部分:

  1. 通过为期两周的大数据实践,我学会了利用三台虚拟机作服务器搭建Hadoop集群环境,创建并使用脚本启动namenode、datanode等进程。
  2. 正确搭建集群环境需有以下进程:

第一台虚拟机上:NameNode、DataNode、NodeManager、JobHistoryServer;
第二台虚拟机上:DataNode、ResourceManager、NodeManager;
在第三台虚拟机上:DataNode 、SecondaryNameNode、NodeManager。

  1. 使用脚本实现群起集群,需配置SSH无密登录,需将本虚拟机机器上生成的公钥拷贝到要免密登录的目标机器上。
  2. 配置历史服务器和日志的聚集,需重新启动集群生效,从而查看查看程序的历史运行情况,方便开发调试。

实操二部分:

  1. 通过配置hadoop安装目录下的 capacity-scheduler.xml 可配置多队列的容量调度器,重启Yarn刷新队列,就可以看到多条队列。
  2. 默认的任务提交都是提交到default队列的,向其他队列提交任务需自行指定目标队列。
  3. 在资源紧张时为job任务设置优先级,优先级高的job任务会相对优先级低的job任务优先获取资源,从而更快的完成该任务。

三、 项目中用到的知识点

实操一部分:

  1. 所用Hadoop运行模式为本地模式,即单机运行,可用来演示一下官方案例,如wordcount计数每个单词出现的次数。
  2. 配置ssh免密登录可实现三台虚拟机之间的相互登录与切换,其原理是将id_rsa.pub里的公钥存放到目标机器的authorized_keys(存放授权过的无密登录服务器公钥)上
  3. 配置端口号部分:

HDFS NameNode内部端口:8020;
HDFS NameNode对外查询端口: 9870;
YARN 查看任务运行情况的端口:8088;
JobHistoryServer对外查询端口:19888。

实操二部分:

  1. 刷新队列也可执行yarn rmadmin -refreshQueues刷新,就可以在yarn对应的Scheduler页面看到多条队列。
  2. 配置多队列后,向其他队列提交任务可使用-D mapreduce.job.queuename=指定目标队列
  3. 可使用-D mapreduce.job.priority=n来设置该任务的优先级,n为优先级数,在资源紧张时,优先级高的任务将优先获取资源完成该任务。

四、 实训项目中负责功能板块

实操一部分:

1)准备3台客户机(关闭防火墙、静态IP、主机名称)
2)安装1.8版本的JDK
3)配置/etc/profile.d/目录下my_env.shlinux系统可识别的环境变量
4)安装hadoop-3.1.3
5)配置hadoop安装目录下hadoop-env.sh里的环境变量
6)配置hadoop集群
7)单点启动
8)配置ssh免密登录
9)群起并测试集群

实操二部分:

10)配置多队列
11)测试提交任务
12)设置任务优先级

五、 实训项目实现

实操一部分:

  1. Java版本:
    在这里插入图片描述
  2. 配置/etc/profile.d/目录下my_env.sh的linux系统可识别的环境变量

在这里插入图片描述

  1. 配置hadoop安装目录下hadoop-env.sh里的环境变量(设置namenode等进程启动所需的权限用户)

在这里插入图片描述

  1. 新创建Hadoop集群,三台服务器分别命名hadoop105、hadoop106、hadoop107。Namenode和JobHistory在hadoop105启动,yarn在hadoop106启动,2NN在hadoop107启动。集群中以自己名字拼音设置用户名。

在这里插入图片描述

在这里插入图片描述

  1. hadoop105环境依次输入命令jps、hostname、ifconfig截图:

在这里插入图片描述

  1. hadoop106环境依次输入命令jps、hostname、ifconfig截图:

在这里插入图片描述

  1. hadoop107环境依次输入命令jps、hostname、ifconfig截图:

在这里插入图片描述

  1. MapReduce执行结果截图:

在这里插入图片描述
在这里插入图片描述

  1. 打开http://hadoop105:9870/explorer.html#/进入input文件夹,截图:

    在这里插入图片描述

  2. Input文件夹中,打开上传文件信息截图:

在这里插入图片描述

  1. 打开http://hadoop106:8088/cluster,截图:

在这里插入图片描述

  1. 打开http://hadoop105:19888/jobhistory,截图:

在这里插入图片描述

  1. 网页中打开执行结果文件,截图:

在这里插入图片描述

在这里插入图片描述

实操二部分:

  1. yarn-site.xml配置截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 队列配置结束后http://hadoop106:8088/cluster/apps中default队列详情图:

在这里插入图片描述
3. 队列配置结束后http://hadoop106:8088/cluster/apps中hive队列详情截图:
在这里插入图片描述

  1. 队列配置好后http://hadoop106:8088/cluster/apps中【名字拼音】队列详情:

在这里插入图片描述

  1. Hive队列中提交wordcount任务,hive队列详情截图:
    输入的相关操作指令如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实现的队列执行效果如下:

在这里插入图片描述

  1. 【学生名字】队列中提交wordcount任务,队列详情截图:
    输入的相关操作指令如下:

在这里插入图片描述
在这里插入图片描述

实现的队列执行效果如下:

在这里插入图片描述

  1. 优先级测试结果截图,在优先级5运行时截取:
    输入的相关操作指令如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    实现的执行效果如下:
    在这里插入图片描述

六、 实训项目过程中遇到的问题及解决方法

所遇问题:

1)无法打开hadoop105、hadoop106所对应的网页
2)ssh没有配置好
3)粘贴Word中命令时,执行命令不生效
4)jps发现进程已经没有,但是重新启动集群,提示进程已经开启。
5)jps不生效
6)8088端口连接不上
7)再次格式化NameNode导致无法启动datanode进程
8)xshell连接虚拟机后,输入指令时从数字小键盘输入的数字无效

解决办法:

(1)防火墙没关闭、或者没有启动YARN,在/etc/hosts文件中添加192.168.10.105(ip地址) hadoop105之类
(2)配置文件的修改不细心,按文档重新仔细检查
(3)粘贴Word中命令时,执行命令不生效,遇到-和长–没区分开,导致命令失效
(4)在Linux的根目录下/tmp目录中存在启动的进程临时文件,将集群相关进程删除掉,再重新启动集群。
(5)全局变量hadoop java没有生效。解决办法:需要source /etc/profile文件。
(6)输入指令:cat /etc/hosts
注释掉如下代码
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 hadoop102
(7)格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。可删除所有机器的data和logs目录,然后再进行格式化,或者进入namenode对应的clusterID所在的文件,复制其clusterID到datanode对应的clusterID即可。
(8)打开xshell,点击“默认属性”,打开对话框,在类别中选择“VT模式”,然后在右侧的选项中,选择:初始数字键盘模式中的“设置为普通”,最后点击“确定”即可。

七、实训体会与心得

  1. 通过为期两周的大数据实践,我学会了利用三台虚拟机作服务器搭建Hadoop集群环境,创建并使用脚本启动namenode、datanode等进程,感受到了hadoop的四大优势:高可靠性,高扩展性,高效性和高容错性。

  2. 正确搭建集群环境需有以下进程:

第一台虚拟机上:NameNode、DataNode、NodeManager、JobHistoryServer;
第二台虚拟机上:DataNode、ResourceManager、NodeManager;
在第三台虚拟机上:DataNode 、SecondaryNameNode、NodeManager。

  1. 使用脚本实现群起集群,需配置SSH无密登录,需将本虚拟机机器上生成的公钥拷贝到要免密登录的目标机器上,其原理是将id_rsa.pub里的公钥存放到目标机器的authorized_keys(存放授权过的无密登录服务器公钥)上

  2. 配置历史服务器和日志的聚集,需重新启动集群生效,从而查看查看程序的历史运行情况,方便开发调试。

  3. 通过配置hadoop安装目录下的capacity-scheduler.xml可配置多队列的容量调度器,重启Yarn刷新队列,也可执行yarn rmadmin -refreshQueues刷新,就可以yarn对应的Scheduler页面看到多条队列。

  4. 默认的任务提交都是提交到default队列的,向其他队列提交任务可使用-D mapreduce.job.queuename=指定目标队列

  5. 在资源紧张时为job任务设置优先级,可使用-D mapreduce.job.priority=n来设置该任务的优先级,其中n为优先级数,优先级高的job任务会相对优先级低的job任务优先获取资源,从而更快的完成该任务。


http://www.niftyadmin.cn/n/210133.html

相关文章

ipmi的基本使用

以如下主机为例,总结大家重启云主机并关掉防火墙的步骤,备忘: ip:10.111.12.121 账户密码 pwusr /123456 ipmi:10.131.11.16 账户密码 admin / 456789 1. 在一台内网的linux主机上,安装ipmitool,以ubuntu为例&#xf…

vue3 ref 和 reactive 区别

前言 最近学习cloud项目,前端使用到 vue3 ts 等技术,在写需求过程中遇到响应式数据问题,经百度查找相关笔记,在此记录一下,在实战中成长吧。 问题 出现的问题:定义一个默认数组并且 for 循环展示&#…

利用docker搭建云渗透测试靶场

文章目录 前言Docker的安装1、Linux内核版本查看2、更新apt源满足下载要求3、进行系统或工具的更新4、采用apt安装Docker云靶场腾讯云 COS Bucket 公开访问场景场景搭建部署靶场销毁环境前言 Docker是渗透测试中必学不可的一个容器工具,在其中,我们能够快速创建、运行、测试以…

Android MediaCodec设置H264 Profile到High

H264 High Profile压缩率高,能降低码率,这里记录下MediaCodec Profile设置到High遇到的一些问题。 Android 4.1 就引入了MediaCodecInfo.CodecProfileLevel类,下面截取H264(AVC)的Profile和Level定义: /** Copyright (C) 2012 The Android O…

React 18项目上手学习(从0到1开发一个WebApp)

惯例先贴项目地址:WinWang/react-oepn-eye: 该项目是React版本开发的开眼App-web版本,主要目的是用来学习上手React项目实践,接口和UI基本参照以前开发的Flutter OpenEye项目主体基于React18React-VantMobxaxios开发完成,非常适合新手了解和学…

SpringBoot国际化配置

1、创建资源文件 resources 下新建目录命名为:i18n ,然后在i18n目录文件下定义资源文件‘Resource Bundle’ 新增国际化文件 messages.properties、messages_en_US.properties、messages_zh_CN.properties 2、修改配置文件 修改配置application.yml…

上海亚商投顾:沪指四连阳重回3300点 中字头个股再发力

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪大小指数今日走势分化,沪指低开后震荡反弹,创业板指盘中跌超1%。中字头个股再度发力&#x…

24节气-清明诗句、海报分享。清明雨上,遥寄相思。

清明节,又称踏青节、行清节、三月节、祭祖节等,节期在仲春与暮春之交。 清明节源自上古时代的祖先信仰与春祭礼俗,兼具自然与人文两大内涵,既是自然节气点,也是传统节日。 中华民族自古就有清明踏青的习俗。踏青古时…