分布式资源管理与任务调度框架yarn的运行流程

1)用户向 YARN 中提交应用程序/作业,其中包括 ApplicationMaster 程序、启动ApplicationMaster 的命令、用户程序等。
2)ResourceManager 为作业分配第一个 Container,并与对应的NodeManager 通信,要求它在这个 Container 中启动该作业的 ApplicationMaster。
3)NodeManager 启动一个 Container 运行 ApplicationMaster。
4)ApplicationMaster 首先向 ResourceManager 注册,这样用户可以直接通过 ResourceManager 查询该作业的运行状态;然后它将为各个任务申请资源并监控任务的运行状态。
如果 Container 没有完全申请到位,则会先使用已经分配到位的部分 Container 资源进行后续的第 5、6、7 步骤,其余 Container 部分由 ApplicationMaster 采用轮询的方式通过 RPC 请求向
ResourceManager 申请和领取资源,直到全部资源分配到位。
5)一旦 ApplicationMaster 申请到资源后,便与对应的 NodeManager 通信,要求它启动任务。
6)NodeManager 执行 ApplicationMaster 发送的命令,启动 Container 任务。
7)各 个 Container 通 过 RPC 向 ApplicationMaster 汇 报 自 己 的 状 态 和 进 度 , 以 让ApplicationMaster 随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。
在作业运行过程中,用户可以随时通过 RPC 向 ApplicationMaster 查询作业当前运行状态。
8)作业完成后,ApplicationMaster 向 ResourceManager 申请注销并关闭自己。

你可能感兴趣的:(分布式资源管理与任务调度框架yarn的运行流程)