Node节点下的Container管理
- 启动时向ResourceManager注册并定时发送心跳消息,等待ResourceManager的指令
- 监控Container的运行,维护Container的生命周期,监控Container的资源使用情况
- 启动或停止Container,管理任务运行时的依赖包(根据ApplicationMaster的需要,启动Container之前将需要的程序及其依赖包、配置文件等拷贝到本地)
内部结构
- NodeStatusUpdater: 启动向ResourceManager注册,报告该节点的可用资源情况,通信的端口和后续状态的维护
- ContainerManager: 接收RPC请求(启动、停止),资源本地化(下载应用需要的资源到本地,根据需要共享这些资源) PUBLIC: /filecache PRIVATE: /usercache//filecache APPLICATION: /usercache//appcache//(在程序完成后会被删除)
- ContainersLauncher: 加载或终止Container
- ContainerMonitor: 监控Container的运行和资源使用情况
- ContainerExecutor: 和底层操作系统交互,加载要运行的程序