资源调度框架YARN介绍

1、YARN架构

 图片来自: https://hadoop.apache.org/docs/r3.2.2/hadoop-yarn/hadoop-yarn-site/YARN.html

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执行流程

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命令查看是否启动

使用网页查看,端口8088

4) 停止yarn

./stop-yarn.sh

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

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

将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/

查看文件内容

/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/

使用web查看

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

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

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

作者:Work Hard Work Smart
出处:http://www.cnblogs.com/linlf03/
欢迎任何形式的转载,未经作者同意,请保留此段声明!

原文地址:https://www.cnblogs.com/linlf03/p/14352262.html