Yarn NodeManager功能结构


发布于 2024-08-17 / 37 阅读 / 0 评论 /
基于hadoop3.3.4源码,解读NodeManager的功能结构

NodeManager的功能结构如下图所示:

1.NodeStatusUpdater

NodeStatusUpdater是一个接口,其实现类为NodeStatusUpdaterImpl。

NodeStatusUpdater是 NodeManager 与 ResourceManager 通信(注册和心跳)的唯一通道,通信协议为ResourceTracker。

当 NodeManager 启动时, 该组件负责向 ResourceManager 注册,并汇报节点上总的可用资源( 该值在运行过程中不再汇报)。

NodeManager 启动完成之后,NodeStatusUpdater周期性与 ResourceManager 通信, 汇报各个 Container 的状态更新,包括节点上正运行的 Container、 已完成的 Container 等信息, 同时 ResourceManager 会为之返回待清理 Container 列表、 待清理应用程序列表、诊断信息、 各种 Token 等信息。

1.1.NodeManager 注册

NodeStatusUpdaterImpl 在 NodeManager 的 serviceInit() 方法中进行构建,在 serviceStart() 方法中向 ResourceManager 注册。

1.2.NodeManager 心跳

在 NodeStatusUpdaterImpl 的 serviceStart() 方法中,通过 registerWithRM() 方法完成 NodeManager 向 ResourceManager 的注册工作;之后调用 startStatusUpdater() 启动一个心跳线程。