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注销自己