ResourceManager
**ResourceManager:**全局的资源管理者,整个集群只有唯一的一个,负责集群的资源统一管理和分配调度:
1.处理客户端的请求
2.启动监控 ApplicationMaster
3.监控 NodeManager
4.资源分配调度
NodeManager
**NodeManager:**整个集群中有多个,负责自己本身节点的资源管理使用:
1.定时向RM汇报本节点的资源情况
2.单个节点上的资源任务管理
3.执行 NodeManager 的命令:启动 Container
4.协助 ApplicationMaster处理任务
5.管理着抽象的资源容器,这些容器代表着一个应用程序针对每个节点上的资源
ApplicationMaster
**ApplicationMaster:**管理应用程序在yarn上的每个实例:
1.每个应用程序对应一个:MR、Spark,负责应用程序的管理
2.为应用程序向RM申请资源(core、memory),分配给内部task
3.需要与 NM 通信:启动/停止 task,task 是运行在 container 里面,AM 也是运行在 container 里面
Container
**Container:**YARN 中的资源抽象,封装了该节点上的多维度资源:
1.封装了 CPU、Memory 等资源的一个容器
的资源抽象,封装了该节点上的多维度资源:
1.封装了 CPU、Memory 等资源的一个容器
2.是一个任务运行环境的抽象,且该任务只能使用该 container 中描述的资源