hadoop3.x yarn工作流程 作者:马育民 • 2021-04-15 20:17 • 阅读:10271 # 说明 yarn已经成为 通用的 **资源管理**、**任务调度** 平台,不止可以运行 MapReduce,还可以运行 spark、flink等其他程序 官网: https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YARN.html # 步骤 [![](http://65242847.gitee.io/pic/hadoop/wKiom1O0-6LhvCpYAALI8xesCO4652.jpg)](http://65242847.gitee.io/pic/hadoop/wKiom1O0-6LhvCpYAALI8xesCO4652.jpg) **步骤1,** 用户向 `Yarn` 提交应用程序,其中包括用户程序、相关文件、启动ApplicationMaster命令、ApplicationMaster程序等。 **步骤2,** `ResourceManager` 为该应用程序分配第一个`Container`,并且与 `Container` 所在的 `NodeManager` 通信,并且要求该 `NodeManager` 在这个 `Container` 中启动应用程序对应的 `ApplicationMaster`。 **步骤3,** `ApplicationMaster` 首先会向 `ResourceManager` 注册,这样用户才可以直接通过 `ResourceManager` 查看到应用程序的运行状态,然后它为准备为该应用程序的各个任务申请资源,并监控它们的运行状态直到运行结束,即重复后面 `4~7` 步骤。 **步骤4,** `ApplicationMaster` 采用轮询的方式通过RPC协议向`ResourceManager` 申请和领取资源。 **步骤5,**一旦 `ApplicationMaster` 申请到资源后,便会与申请到的 `Container` 所对应的 `NodeManager` 进行通信,并且要求它在该 `Container` 中启动任务。 **步骤6,**任务启动。`NodeManager` 为要启动的任务配置好运行环境,包括环境变量、JAR包、二进制程序等,并且将启动命令写在一个脚本里,通过该脚本运行任务。 **步骤7,**各个任务通过RPC协议向其对应的 `ApplicationMaster` 汇报自己的运行状态和进度,以让 `ApplicationMaster` 随时掌握各个任务的运行状态,从而可以再任务运行失败时重启任务。 **步骤8,** 应用程序运行完毕后,其对应的 `ApplicationMaster` 会向 `ResourceManager` 通信,要求注销和关闭自己。 感谢: https://www.cnblogs.com/itboys/p/9184381.html 原文出处:http://malaoshi.top/show_1IX2EWMFEPjo.html