1、YARN架构

资源调度框架YARN介绍_mapreduce

 


1个RN(ResourceManager)和多个NM(NodeManager)

ResourceManager职责: 一个集群active状态的RM只有一个,负责整个集群资源管理和调度

1) 处理客户端的请求(启动/杀死)

2) 启动/监控ApplicationMaster(一个作业对应一个AM)

3)、监控NM

4) 系统的资源分配和调度

NodeManager职责: 整个集群有N个,负责单个节点的资源管理和使用以及task的运行情况

1) 定期向RM汇报本节点的资源使用请求和各个Container的运行状态

2) 接收并处理RM的container 启停的各种命令

3) 单个节点的资源管理和任务管理

 

ApplicationMaster职责: 每个应用/作业对应一个,负责应用程序的管理

1) 数据切分

2) 为应用程序向RM申请资源(Container),并分配给内部任务。

3) 与NM通信以启停task, task是运行在container中的

4) task的监控和容错

 

Container职责

对任务运行情况的描述: cpu、memory、环境参数

 

2、YARN执行流程

资源调度框架YARN介绍_hadoop_02

 

1) 用户向YARN提交作业

2) RM为该作业分配第一个container(AM)

3) RM会与对应的NM通信,要求NM在这个container上启动应用程序的AM

4) AM首先向RM注册,然后AM将为各个任务申请资源,并监控运行情况

5) AM采用轮询的方式通过RPC协议向RM申请和领取资源。

6) AM申请到资源以后,便和相应的NM通信,要求NM启动任务。

7) NM启动我们作业对应的task

 

3、YARN环境搭建

cd  /root/tools/hadoop-2.6.0/etc/hadoop

1) mapred-site.xml

cp mapred-site.xml.template  mapred-site.xml



<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>


  

2) yarn-stie.xml

vi yarn-site.xml



<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

</configuration>


  

3) 启动yarn

cd /root/tools/hadoop-2.6.0/sbin

./start-yarn.sh

使用jps命令查看是否启动

资源调度框架YARN介绍_mapreduce_03

 

使用网页查看,端口8088

资源调度框架YARN介绍_mapreduce_04

 

4) 停止yarn

./stop-yarn.sh

 

5) MapReduce作业提交到YARN上运行

数据准备 /home/data 目录下hello.txt 文件,文件内容如下图所示:

资源调度框架YARN介绍_xml_05

 

 

将hello.txt 放到hdfs里

cd /root/tools/hadoop-2.6.0/bin

创建文件夹/input/wc

./hadoop fs -mkdir -p /input/wc

将hello.txt 放到/input/wc/文件夹下

./hadoop fs -put /home/data/hello.txt  /input/wc/

查看文件内容

资源调度框架YARN介绍_hadoop_06

 

 

 

 

/root/tools/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar

cd /root/tools/hadoop-2.6.0/bin

./hadoop jar  /root/tools/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount  /input/wc/hello.txt   /output/wc/

运行后查看

。。。

 

使用hadoop cdh5.7.0版本。其它配置和前一样。

cd  /home/tools/hadoop-2.6.0-cdh5.7.0/bin

./hadoop jar  /home/tools/hadoop-2.6.0-cdh5.7.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar wordcount  /input/wc/hello.txt   /output/wc/

资源调度框架YARN介绍_jar_07

 

使用web查看

资源调度框架YARN介绍_jar_08

 

 说明作业测处理状态是成功的。

最终的单词统计结果如下图所示

资源调度框架YARN介绍_xml_09

 

 hello 单词有2个, welcome单词有2个,world单词有1个。