# 前言
上一篇总结了启动 HDFS 并运行 MapReduce 程序。这一篇主要记录启动 YARN 并运行 MapReduce 程序
# 配置集群
- 配置:
etc/hadoop/yarn-env.sh
。配置 JAVA_HOME 路径export JAVA_HOME=/opt/module/jdk1.8.0_144
- 配置:
etc/hadoop/yarn-site.xml
<!-- Reducer 获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 YARN 的 ResourceManager 的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>0.0.0.0</value>
</property>
- 配置:
etc/hadoop/mapred-env.sh
。配置 JAVA_HOME 路径export JAVA_HOME=/opt/module/jdk1.8.0_144
- 配置:
etc/hadoop/mapred-site.xml
。这个文件是对mapred-site.xml.template
重命名得到的<!-- 指定 MR 运行在 YARN 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
# 启动集群
- 启动之前必须保证 NameNode 和 DataNode 已经启动
- 启动 ResourceManager
[root@hadoop02 hadoop-2.7.2]# sbin/yarn-daemon.sh start resourcemanager
- 启动 NodeManager
[root@hadoop02 hadoop-2.7.2]# sbin/yarn-daemon.sh start nodemanager
- 查看集群是否启动成功
[root@hadoop02 hadoop-2.7.2]# jps
12080 DataNode
13170 NodeManager
13285 Jps
12919 ResourceManager
11976 NameNode
# 集群操作
在 Web 浏览器查看集群。注意,和 50070 那个端口是不一样的,这个是专门查看 MapReduce 程序运行状况的。记得在服务器上开放 8088 端口
http://hadoop02:8088/cluster
删除文件系统上的 output 文件夹,如果有的话。
[root@hadoop02 hadoop-2.7.2]# bin/hdfs dfs -rm -r /user/yain/output
执行 MapReduce 程序
[root@hadoop02 hadoop-2.7.2]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/yain/input /user/yain/output
查看执行成功
[root@hadoop02 hadoop-2.7.2]# bin/hdfs dfs -cat /user/yain/output/p*