下面来学习一下hadoop伪分布式模式的另外一种,利用yarn并运行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