ResourceManager: 对外提供一个申请资源的接口; 负责对全局资源的管理的分配
NodeManager: 管理自身节点的资源信息; 与其他节点进行通讯,启动任务
Applocalmaster: 负责向MR申请资源; 对某个任务的状态进行监控
Container: 负责对资源进行逻辑划分,以及资源的回收
调度流程:
- 客户端向yarn提交一个任务;
- RM根据返回的节点信息,在资源充足的节点的上分配一个容器,并与对应的NM进行通讯,要求其在容器中启动Applocalmaster;
- Applocalmaster启动成功后,会向RM注册自己,表明自己可以管理一个任务;
- Applocalmaster对需要处理的数据进行切分处理,并向RM申请资源;
- RM根据给定的调度策略分配其相应的资源;
- Applocalmaster申请到资源后,会与集群中的其他节点进行通讯,要求其启动任务;
- NM接收到Applocalmaster的请求后,会根据作业提交的信息,启动对应的任务;
- 任务启动后,会定时向Applocalmaster汇报自己的状态信息及执行进度;
- 所有任务结束后,Applocalmaster会向RM注销和关闭自己.
# ResourceManager 简写为 RM; NodeManager 简写为 NM