YARN角色

1.RM ResourceManager 

a)调度器:分配container给应用程序

b)应用程序管理器:管理应用程序(程序提交,与调度器交互启动AM,监控AM等)

2.ApplicationMaster:管理每个应用程序,与RM交互要container,与NM交互运行task

3.NodeManager:运行应用程序AM的task,与RM交互汇报Container资源情况

4.Container:封装多维度资源



YARN通信

从以上角色中可以看出有着多个通信:

Client-RS:向RM提交应用程序

Admin-RS:向RM更新配置文件

AM-RM:要求RM启动,停机自己,申请资源

AM-NM:要求NM启动,停止Container中的任务,获取Container信息

NM-RM:向RM注册Container,定时汇报Container



YARN工作流程

1.Client向RM提交应用程序

2.RM分配一个Container,返回NM命令,在此Container中启动AM

3.AM向RM注册,向RM申请资源,为各个任务(任务与AM的关系)申请资源,并监控各个任务

4.AM向RM申请资源

5.AM向NM通知启动任务

6.NM打jar包等准备工作,写到脚本中,启动任务

7.各个任务RPC到AM汇报状态

8.AM的各个任务重复执行4-7,AM向RM注销自己