YARN 的工作流程分为以下几个步骤: 步 骤 1: 用 户 向 YARN 中 提 交 应 用 程 序, 其 中 包 括 ApplicationMaster 程 序、 启 动ApplicationMaster 的命令、 用户程序等。 步骤 2: ResourceManager 为 该 应 用程 序 分 配 第 一 个 Container, 并 与 对应 的 NodeManager 通信, 要求它在这个 Container 中启动应用程序的 ApplicationMaster。 步 骤 3: ApplicationMaster 首 先 向 ResourceManager 注 册, 这 样 用 户 可 以 直 接 通 过ResourceManage 查看应用程序的运行状态, 然后它将为各个任务申请资源, 并监控它的运行状态, 直到运行结束, 即重复步骤 4~7。 步骤 4 :ApplicationMaster 采用轮询的方式通过 RPC 协议向 ResourceManager 申请和领取资源。 步骤 5 :一旦 ApplicationMaster 申请到资源后, 便与对应的 NodeManager 通信, 要求它启动任务。 步骤 6: NodeManager 为任务设置好运行环境(包括环境变量、 JAR 包、 二进制程序等) 后, 将任务启动命令写到一个脚本中, 并通过运行该脚本启动任务。 步骤 7: 各个任务通过某个 RPC 协议向 ApplicationMaster 汇报自己的状态和进度, 以让 ApplicationMaster 随时掌握各个任务的运行状态, 从而可以在任务失败时重新启动任务。在应用程序运行过程中, 用户可随时通过 RPC 向 ApplicationMaster 查询应用程序的当前运行状态。 步骤 8: 应用程序运行完成后,ApplicationMaster 向 ResourceManager 注销并关闭自己。
转载于:https://www.cnblogs.com/sunrise88/p/6854975.html
相关资源:JAVA上百实例源码以及开源项目