1 RM(ResourceManager)+N NM(NodeManager)
ResourceManager的职责:一个集群active状态的RM只有一个,负责整个集群的资源管理和调度
(1)处理客户端的请求(启动/杀死)
(2)启动/监控ApplicationMaster(一个作业对应一个AM)
(3)监控NM
(4)系统的资源分配和调度
NodeManager的职责:整个集群中有N个。负责单个节点的资源管理和使用以及Task的运行情况
(1)定期向RM汇报本节点的资源使用情况和各个Container的运行状态
(2)接收并处理RM的container启停的各种命令
(3)单个节点的资源管理和任务管理
ApplicationMaster的职责:每个应用/作业对应一个AM,负责应用程序的管理
(1)数据切分
(2)为应用程序向RM申请资源(资源最终都是在container),并分配给内部任务
(3)与NM通信以启停task,task是运行在container中的
(4)task的监控和容错
Container:对任务运行情况的描述,cpu、memory、环境变量这些信息都是在Container里面
YARN执行流程
1、客户端提交作业
2、找到或分配节点NM
3、要为作业提供第一个Container,第一个Con肯定是去运行AM
4、AM运行起来后肯定要先注册到RM(比如你要申请多少资源),然后AM为各个任务申请资源,并监控运行情况
AM采用轮休的方式通过RPC协议向RM申请和领取资源
5、AM申请到资源后,便和相应的NM通信,要求NM启动任务
6、NM启动我们的作业