集群部署规划
配置 core-site.xml
cd $HADOOP_HOME/etc/hadoop
vim 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 网页登录使用的静态用户为 atguigu -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>atguigu</value>
</property>
</configuration>
配置 hdfs-site.xml
vim 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>
配置 yarn-site.xml
vim 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_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME</value>
</property>
</configuration>
配置 mapred-site.xml
vim mapred-site.xml
<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
在集群上分发配置好的 Hadoop 配置文件
xsync /opt/module/hadoop-3.1.3/etc/hadoop/
配置 workers
vim workers
hadoop102
hadoop103
hadoop104
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
同步所有节点配置文件
xsync /opt/module/hadoop-3.1.3/etc
启动集群
如果集群是第一次启动,需要在 hadoop102 节点格式化 NameNode,在hadoop-3.1.3文件下运行
hdfs namenode -format
启动 HDFS
sbin/start-dfs.sh
在配置了 ResourceManager 的节点(hadoop103)启动 YARN
sbin/start-yarn.sh
Web 端查看 HDFS 的 NameNode
浏览器中输入:http://hadoop102:9870
Web 端查看 YARN 的 ResourceManager
浏览器中输入:http://hadoop103:8088
配置历史服务器
vim 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>
分发配置
xsync mapred-site.xml
在 hadoop102 启动历史服务器
mapred --daemon start historyserver
查看 JobHistory
http://hadoop102:19888/jobhistory
配置日志的聚集
开启日志聚集功能,需要重新启动 NodeManager 、ResourceManager 和
HistoryServer。
配置 yarn-site.xml
vim 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>
<!-- 设置日志保留时间为 7 天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
分发配置
xsync yarn-site.xml
关闭 NodeManager 、ResourceManager 和 HistoryServer
sbin/stop-yarn.sh
mapred --daemon stop historyserver
启动 NodeManager 、ResourceManage 和 HistoryServer
start-yarn.sh
mapred --daemon start historyserver
删除 HDFS 上已经存在的输出文件
hadoop fs -rm -r /output
执行 WordCount 程序
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output
查看日志
http://hadoop102:19888/jobhistory
参考尚硅谷教程