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