在 Yarn 中,ApplicationMaster 运行期间需要与 ResourceManager 进行哪些通信?请描述其交互机制。
考察说明
考查对 Yarn 核心组件 ApplicationMaster 与 ResourceManager 通信机制的理解。
回答思路
- 【回答框架 1】ApplicationMaster 启动后,首先向 ResourceManager 注册,通过 registerApplicationMaster 发送自身地址和容器信息,ResourceManager 记录其状态,并返回集群最大资源等元数据。
- 【回答框架 2】运行期间,ApplicationMaster 通过周期性的心跳(heartbeat)与 ResourceManager 保持联系,心跳中包含请求资源的 Container 列表、释放资源请求、以及任务进度等状态信息。
- 【回答框架 3】ResourceManager 根据心跳中资源请求为 ApplicationMaster 分配新的 Container,并返回已完成的容器列表和集群资源变化信息。
- 【回答框架 4】当任务结束或失败时,ApplicationMaster 调用 finishApplicationMaster 通知 ResourceManager,ResourceManager 清理资源并更新应用状态。
- 【关键点 1】ApplicationMaster 与 ResourceManager 基于心跳机制通信,保持资源请求和状态同步。
- 【关键点 2】主要交互包括注册、心跳、资源请求与释放、任务完成通知。
- 【关键点 3】ResourceManager 不直接管理任务,只负责资源分配和协调。