类型:学习笔记
参考:尚硅谷大数据系列课程
上篇文章通过克隆将集群搭建出来,这篇文章对Hadoop进行配置,修改配置文件,启动并测试集群。开去历史服务器以及日志聚集。
部署规划
hadoop102 | hadoop103 | hadoop104 | |
---|---|---|---|
HDFS |
NameNode 、DataNode
|
DataNode |
SencondNameNode 、DataNode
|
YARN | NodeManager |
ResourceManager、NodeManager |
NodeManager |
-
NameNode
和SecondNameNode
不要安装在同一台服务器上 -
ResourceManager
也很消耗内存,不要和NameNode
、SecondNameNode
配置在同一台机器上
配置文件
1、默认配置文件
默认配置文件可在对应的jar包中找到
core-default.xml | hadoop-common-3.1.3.jar/core-default.xml |
hdf-default.xml | hadoop-hdfs-3.1.3.jar/hdfs-default.xml |
yarn-default.xml | hadoop-yarn-common-3.1.3.jar/yarn-default.xml |
mapred-default.xml | hadoop-mapreduce-client-core-3.1.3.jar/mapred-default.xml |
2、自定义配置文件
在$HADOOP_HOME/etc/hadoop
中
文章使用的时/opt/module/hadoop-3.1.3/etc/hadoop
配置集群
所有操作在
swcode
用户进行,非root
在hadoop102上配置
1、核心配置文件:core-site.xml
vim /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
内容如下
<configuration>
<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:8020</value>
</property>
<!-- 指定 hadoop 数据存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
<!-- 配置HDFS网页登录使用的静态用户为swcode -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>swcode</value>
</property>
</configuration>
2、HDFS配置文件:hdfs-site.xml
vim /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
内容如下
<configuration>
<!-- NN Web端访问地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop102:9870</value>
</property>
<!-- 2NN Web端访问地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:9868</value>
</property>
</configuration>
3、YARN配置文件:yarn-site.xml
vim /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml
内容如下
<configuration>
<!-- 指定 MR 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_HOME,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
4、MapReduce配置文件:mapred-site.xml
vim /opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml
内容如下
<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
分发配置文件
xsync
是自定义的sync
脚本
xsync /opt/module/hadoop-3.1.3/etc/hadoop/
启动集群
1、配置workers
vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
新增一下内容,内容结尾不允许空格,文件中不允许出现空行
hadoop102
hadoop103
hadoop104
像下面这样
2、分发workers
xsync /opt/module/hadoop-3.1.3/etc/hadoop/workers
3、第一次启动初始化(hadoop102
)
hdfs namenode -format
/opt/module/hadoop-3.1.3
会多出两个文件夹:/data
和/logs
4、启动HDFS(hadoop102
)
start-dfs.sh
启动成功后,每台主机分别运行下面代码,检查一下
jps
根据规划的部署,应该和下面一样
-
hadoop102
:Jps
、DataNode
、NameNode
-
hadoop103
:DataNode
、Jps
-
hadoop104
:SecondaryNameNode
、Jps
查看Web页面:http://192.168.10.102:9870/
5、启动YARN
来到配置了ResourceManager
的节点(hadoop103
)
start-yarn.sh
对照部署规划,一样就说明成功了~
查看YARN资源调度页面:http:192.168.10.103:8088
测试集群
1、上传文件到HDFS(hadoop102
上)
# 创建目录
hadoop fs -mkdir /wcinput
# 上传文件
hadoop fs -put /opt/module/hadoop-3.1.3/wcinput/words.txt /wcinput
words.txt是之前使用
wordcount
做的小案例
查看效果:Browsing HDFS
2、再次运行wordcount
案例
# 来到 hadoop 安装目录
cd /opt/module/hadoop-1.3.1/
# 执行
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /wcinput /wcoutput
来到YARN资源调度页面:http:192.168.10.103:8088
可以看到一条资源调度记录
查看效果:Browsing HDFS
配置历史服务器
1、配置mapred-site.xml
(在hadoop102
上配置)
vim /opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml
增加配置文件
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop102:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop102:19888</value>
</property>
2、分发配置
xsync /opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml
3、在hadoop102
中启动历史服务器
mapred --daemon start historyserver
需要重启yarn
,在hadoop103
中重启yarn
(本文的yarn
配置在hadoop103
中)
stop-yarn.sh
start-yarn.sh
4、查看历史服务器是否启动
[swcode@hadoop102 ~]$ jps
123607 DataNode
123403 NameNode
127613 JobHistoryServer
127773 Jps
125615 NodeManager
配置日志聚集
1、修改yarn-site.xml
vim /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml
增加如下内容
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop102:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
2、分发配置
xsync /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml
3、在hadoop102
中停止历史服务器
mapred --daemon stop historyserver
4、在hadoop103
中重启yarn
stop-yarn.sh
start-yarn.sh
5、在hadoop102
中停启动历史服务器
mapred --daemon start historyserver
4、在hadoop103
中重启yarn