在 Hadoop YARN 架构中,当 ApplicationMaster (AM) 向 ResourceManager (RM) 成功申请到资源(以 Container 的形式表示)后,AM 需要直接与对应的 NodeManager (NM) 进行交互来启动实际的计算任务。这个过程是绕过 RM 直接进行的(点对点通信)。 以下是 ApplicationMaster 与 NodeManager 交互并启动任务的详细流程: 1. 准备阶段:构建 ContainerLaunchContext (CLC) AM 在联系 NM 之前,首先需要构造一个叫做 (容器启动上下文) 的核心对象。这个对象相当于任务的“执行蓝图”,告诉 NM 具体该如何运行这个任务。 CLC 主要包含以下关键信息: Local Resources (本地资源):任务运行所需的依赖文件(如 JAR 包、配置文件、字典文件等)。AM 会指定这些文件在 HDFS 上的路径,要求 NM 下载到本地。 Environment Variables (环境变量):任务进程运行所需的系统环境变量(如 , 等)。 Commands ...