Yarn资源调度流程

想了解Yarn资源调度流程, 可点击此处查看

集群规划

角色 node01 node02 node03 node04 client
ResourceManager √(主) √(备)
NodeManager
Client

Yarn搭建步骤

  由于在Hadoop2.x版本中自带Yarn组件, 因此Yarn的搭建是在Hadoop的安装包中进行.

  1. 首先进入Hadoop的配置文件目录
cd /opt/software/hadoop/hadoop-2.6.5/etc/hadoop/
  1. 修改mapred-site.xml.template
      先将文件改名, 去掉后缀
mv mapred-site.xml.template mapred-site.xml

  在 configuration 标签对中加入下述内容:

<property>    	
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
  1. 修改yarn-site.xml
      在 configuration 标签对中加入下述内容:
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>
<!-- MapReduce的shuffle借助于yarn来实现 -->
<property>
	<name>yarn.resourcemanager.ha.enabled</name>
	<value>true</value>
</property>
<!-- 启动ResourceManager的高可用,即主备ResourceManager-->
<property>
	<name>yarn.resourcemanager.cluster-id</name>
	<value>cluster1</value>
</property>
<!-- 自定义Yarn集群的id号 -->
<property>
	<name>yarn.resourcemanager.ha.rm-ids</name>
	<value>rm1,rm2</value>
</property>
<!-- ResourceManager在哪些节点上启动,这里是节点的别名,别名的配置见下 -->
<property>
	<name>yarn.resourcemanager.hostname.rm1</name>
	<value>node01</value>
</property>
<!-- 启动Resourcemanager的节点node01,别名rm1 -->
<property>
	<name>yarn.resourcemanager.hostname.rm2</name>
	<value>node02</value>
</property>
<!-- 启动Resourcemanager的节点node02,别名rm2 -->
<property>
	<name>yarn.resourcemanager.zk-address</name>
	<value>node02:2181,node03:2181,node04:2181</value>
</property>
<!-- 由于高可用基于Zookeeper,因此需要将Zookeeper的信息配置进来 -->
  1. 发送修改的配置文件
      修改完成之后, 需要将mapred-site.xml 和 yarn-site.xml 两个文件发送到其他三个节点和client上:
scp mapred-site.xml node02:`pwd`&
scp mapred-site.xml node03:`pwd`&
scp mapred-site.xml node04:`pwd`&
scp mapred-site.xml client:`pwd`&

scp yarn-site.xml node02:`pwd`&
scp yarn-site.xml node03:`pwd`
scp yarn-site.xml node04:`pwd`
scp yarn-site.xml client:`pwd`
  1. 启动Yarn主节点
    start-yarn.sh

  2. 启动Yarn备用节点
    yarn-daemon.sh start resourcemanager

  3. 查看进程
    jps

查看Yarn的WebUI监控页面

  启动Yarn集群之后, 在本地机打开浏览器, 在地址栏输入active 状态的ResourceManager节点的ip地址+端口, 例如192.168.75.133:8088(8088是默认端口), 也可在本地机中修改host文件, 配置域名node01, 就可以使用node01:8088来访问webUI的页面. 如图:
在这里插入图片描述

  点击左侧圈中的Nodes, 可以查看从节点NodeManager的信息:
在这里插入图片描述

  如果能够成功打开上述页面, 且Active Nodes 个数与slaves文件中配置的节点个数一致, 则表明Yarn集群搭建成功.

  我们搭建的是高可用的yarn集群, 在node02上还有一个备用的ResourceManager节点, 这时我们访问node02的ResourceManager的WebUI, 页面会提示以下内容:
在这里插入图片描述   意思就是说这给RM是standby状态的, 随后便会自动跳转到Active状态的ResourceManager的WebUI上.

提交MapReduce应用程序到Yarn上运行并在监控页面查看

  在client端提交MapReduce自带的wordcount程序:

hadoop jar /opt/software/hadoop/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /bigdata/hdfs/abc.txt /bigdata/mapreduce/wordcount1

格式解读: hadoop jar +jar包路径 +wordcount(代表执行wc应用) +hdfs输入文件路径 +hdfs输出路径

  提交完成之后, 会陆续打印如下类似内容:
在这里插入图片描述

  在map 0% reduce 0%之后多次提交jps命令后, 会发现集群上会随机在某个或多个节点上分别启动MRAppMaster和YarnChild两个进程, 代表Yarn运行流程中的ApplicationMaster和Yarn-Child角色.
在这里插入图片描述
在这里插入图片描述

  提交任务之后, 可以在之前所说的Yarn的监控页面中查看提交应用的相关信息以及执行进度.
在这里插入图片描述

在这里插入图片描述

  应用执行完成之后, 在提交命令所指的输出路径下会有多个文件, 执行结果存放在part-r-*****相关的所有文件中.
在这里插入图片描述

  使用HDFS命令查看
hdfs dfs -cat /bigdata/mapreduce/wordcount1/part-r-00000

  结果如下:
在这里插入图片描述

posted on 2018-12-17 17:18  七宝嘤嘤怪  阅读(1284)  评论(0编辑  收藏  举报