下面来学习一下hadoop伪分布式模式的另外一种,利用yarn并运行mapreduce程序。
- 1. 配置yarn-env.sh
- 2. 配置yarn-site.xml
- 3. 配置mapred-env.sh
- 4. 重命名mapred-site.xml.template为mapred-site.xml
- 5. 配置mapred-site.xml
- 7. 启动resourcemanager和nodemanager
- 8. 浏览器查看
- 删除HDFS文件系统上的output文件
- 10. 执行mapreduce程序
1. 配置yarn-env.sh
配置JAVA_HOME.
[root@hadoop100 hadoop-2.10.0]# vim etc/hadoop/yarn-env.sh
# some Java parameters
export JAVA_HOME=/opt/module/jdk1.8.0_161
2. 配置yarn-site.xml
[root@hadoop100 hadoop-2.10.0]# vim etc/hadoop/yarn-site.xml
输入下面的内容:
<configuration>
<!-- Site specific YARN configuration properties -->
<!--reducer 获取数据的方式-->
<property>
<name>yarn.nodemanager.aux-serivces</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定yarn的resourcemanager地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop100</value>
</property>
</configuration>
3. 配置mapred-env.sh
[root@hadoop100 hadoop-2.10.0]# vim etc/hadoop/mapred-env.sh
配置JAVA_HOME:
export JAVA_HOME=/opt/module/jdk1.8.0_161
4. 重命名mapred-site.xml.template为mapred-site.xml
[root@hadoop100 hadoop-2.10.0]# mv
etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
5. 配置mapred-site.xml
<configuration>
<!--指定mr运行在yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
7. 启动resourcemanager和nodemanager
在启动之前先用jps命令看看namenode和datanode是否都启动了。如何没有启动,先启动,具体操作看上一篇博客hadoop伪分布式模式之启动HDFS并运行MapReduce程序。
启动resourcemanager和nodemanager:
[root@hadoop100 hadoop-2.10.0]# sbin/yarn-daemon.sh start resourcemanager
starting resourcemanager, logging to /opt/module/hadoop-2.10.0/logs/yarn-root-resourcemanager-hadoop100.out
[root@hadoop100 hadoop-2.10.0]# sbin/yarn-daemon.sh start nodemanager
starting nodemanager, logging to /opt/module/hadoop-2.10.0/logs/yarn-root-nodemanager-hadoop100.out
8. 浏览器查看
在浏览器中输入:http://192.168.1.100:8088/
即可查看到hadoop的应用。
[root@hadoop100 hadoop-2.10.0]# jps
3170 DataNode
4739 ResourceManager
6647 Jps
3067 NameNode
4989 NodeManager
删除HDFS文件系统上的output文件
删除前面测试时在文件系统上产生的HDFS文件。
[zohar@hadoop100 hadoop-2.7.2]$ hdfs dfs -rm -R /user/zohar/output
10. 执行mapreduce程序
[root@hadoop100 hadoop-2.10.0]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar wordcount /user/zohar/input /user/zohar/output
查看运行结果:
[zohar@hadoop100 hadoop-2.7.2]$ hdfs dfs -cat /user/zohar/output/*
hadoop 2
mapreduce 1
yarn 1
zhangzhihong 1
zohar 1
这个例子的结果可能和前面博客所说的不一致,这个是后面更新的,不一致不重要,重要的是能够运行显示出结果。
在虚拟机浏览器可以查看集群运行的内容: http://hadoop100:8088