在 Apache YARN 中,当一个任务在 Container 中运行结束后,资源的回收和释放是一个涉及 操作系统底层清理、节点级状态更新 和 集群级资源重新调度 的多步协同过程。 整个过程主要由 NodeManager (NM)(负责节点本地的物理清理)和 ResourceManager (RM)(负责集群全局的逻辑记账)以及 ApplicationMaster (AM)(负责应用级管理)共同完成。 以下是资源回收和释放的详细过程: 1. 任务进程退出与状态上报 进程结束: Container 内的任务进程(例如 MapReduce 的一个 Map Task,或 Spark 的一个 Executor)执行完毕,无论是正常退出(Exit code 0)还是异常退出(非 0),操作系统级别的进程结束。 AM 感知: 任务在退出前,通常会向该应用的 ApplicationMaster (AM) 发送最后的状态报告,告知任务已完成。 NM 监控感知: NodeManager 内部有一个组件叫 ,它通过轮询操作系统(如读取 目录)或依赖操作系统的信号机制,感知到该 Container ...