前面几篇文章对 Yarn 基本架构、程序基础库、应用设计方法等进行了介绍。之后几篇将开始对 Yarn 核心组件进行剖析。
ResourceManager(RM)是 Yarn 的核心管理服务,负责集群管理、任务调度、状态机管理等,本篇将对 RM 总体架构进行介绍。
一、RM 基本职能
主要包含以下几个功能:
- Client 交互:处理来自 Client 的请求;
- 管理 ApplicationMaster:启动、管理、重启等;
- 管理 Nodemanager:接收 NM 汇报的资源信息,并下达管理指令;
- 资源管理与调度:接收 AM 的资源请求,并分配资源。
如上图所示,RM 中各组件通过对应 RPC 与各 Client 进行通信:
- ResourceTrackerProtocol: NodeManager(NM)通过该 RPC 协议向 RM 注册、汇报节点健康状况和 Container 运行状态,并领取 RM 下达的命令。NM 与 RM 之间采用了「pull模型」,NM 总是周期性地主动向 RM 发起请求(心跳),并领取下达给自己的命令。
- ApplicationMasterProtocol: 应用程序的 ApplicationMaster 通过该 RPC 协议向 RM 注册、申请资源和释放资源。(AM 与 RM 交互参考上一篇