Yarn与MapReduce

2018-07-19  本文已影响0人  Yagami_

--YARN 资源调度框架

YARN架构

1个ResourceManager + N个NodeManager

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

1)处理客户端的请求

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

3)监控NM

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

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

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

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

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

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

  1. 数据切分

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

3)与NM通信以启停task ,task运行在Container中

4)task的监控与容错

Container: 对任务运行情况的描述 : cpu,memory ,环境变量

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启动任务

  1. NM启动我们作业对应的task

YARN 环境搭建

配置文件
hadoop目录下
vi etc/hadoop/mapred-site.xml

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

vi etc/hadoop/yarn-site.xml

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

开启yarn
cd sbin
./start-yarn.sh

停止
cd sbin
./stop-yarn.sh

web接口模式访问yarn
http://ip:8088/cluster

提交mapreduce作业到yarn上运行
创建一个文件 hello.txt
上传一个文件
hadoop fs -put hello.txt /ip/wc
进入hadoop根目录下/share/hadoop/mapreduce/
运行jar包 wordcount统计单词出现的次数 空格拆分
hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar wordcount /ip/wc/hello.txt /output/wc
打开yarn的web页面可以发现 有一个任务被提交
hadoop fs -ls /output/wc 可以看到有的文件part-r-00000

hadoop fs -cat /output/wc/part-r-00000 就可以看到统计后的结果

上一篇下一篇

猜你喜欢

热点阅读