yarn架构极其调度原理

一、整体架构

1.ResourceManager
1).整个集群同一时间提供服务的只有一,负责集群资源的统一管理和调度
2).处理客户端的请求,提交一个进程或杀死一个进程等
3).监控我们的NodeManager,一旦某个NodeManager挂掉,那么该NM上运行的任务需要告诉我们的ApplicationMaster如何进行处理
2.NodeManager
1).整个集群中有多个NM,负责自己本身节点的资源管理和使用
2).定时向ResourceManager汇报本节点的资源使用情况
3).接受并处理来自ResourceManager的各种命令
4).处理来自ApplicationManager的命令
5).单个节点的资源调度
3.ApplicationMaster
1).每个应用程序对应一个ApplicationMaster
2).为应用程序向ResourceManager申请资源(core、memory)分配给内部task
3).需要与NodeManager通信:启动、停止task,task是运行在container里面,AM也是运行在container里面的
4).ApplicationMaster相当于RM和NM之间的中介,必须经过他进行调度,通过任意一个NodeManager启动,RM向他分配任务,AM分配给各个NM
4.Container
1).封装了CPU、Memory等等资源的一个容器
2).是一个任务运行环境的抽象Maptask,Reducetask
3).在这里面运行

二、架构流程

yarn架构极其调度原理_第1张图片(1)MR程序提交到客户端所载节点,客户端向resourceManager申请一个application进程
(2)RM返回application提交路径
(3)客户端向指定路径提交资源
(4)提交完毕后向RM申请运行mrAppMaster(ApplicationMaster)
(5)RM将用户的请求初始化一个task,按照资源调度器进行分发,任务随机发送给其中一个nodeManager,并在该NM上创建MrAppMaster(MrAppMaster只有一个)
(6)该NM接收到任务后,创建container容器,将job所需要的资源下载到本地
(7)mrAPPMaster向RM申请maptask容器,RM将运行maptask任务分配给其他的NodeManager,其他的NodeManager分别领取任务并创建container容器。
(8)RM向其他接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动maptask,执行maptask,maptask对数据分区排序。
(9)所有的maptask执行完毕后,mrAppMaster向RM申请容器,运行reduce task
(10)reduce task向maptask获取相应分区的数据。
(11)Reducetask运行完毕后,会自动注销自己

图是自己画的,不太好,大概参考下就好,文字叙述的还算清楚,如若有错,请告诉我

你可能感兴趣的:(Yarn执行流程,yarn)