在 Hadoop YARN 架构中,处理单个 Container(通常对应一个 Task,如 MapReduce 的 Map 任务或 Spark 的 Executor/Task)运行失败的机制,是 YARN 核心组件(NodeManager、ResourceManager) 与 特定应用程序的 ApplicationMaster (AM) 协同合作的结果。 这里最核心的原则是:YARN 负责监控和报告资源的死活,而 ApplicationMaster 负责决定应用程序的业务逻辑(如是否重试、去哪里重试、何时宣告整个任务失败)。 以下是 YARN 处理单个 Container 运行失败的完整流程和细节: 1. 故障检测 (NodeManager 的职责) 当一个 Container 正在运行时,它所在的机器上的 NodeManager (NM) 会持续监控该 Container 的进程。 进程异常退出: 如果 Container 内的代码抛出未捕获的异常(如 ),或者被操作系统强制杀死,进程会返回一个非零的退出码(Exit Code)。 内存超限 (OOM): 如果 Contain...