YARN之提交流程

图解版:
在这里插入图片描述
文解版:

  1. client 调用 job.waitForCompletion 方法,向整个集群提交 MapReduce 作业。
  2. client 向 RM 申请一个作业 id。
  3. RM 给 client 返回该 job 资源的提交路径和作业 id。
  4. client 提交 jar 包、切片信息和配置文件到指定的资源提交路径。
  5. client 提交完资源后,向 RM 申请运行 MrAppMaster
  6. 当 RM 收到 client 的请求后,将该 job 添加到容量调度器中
  7. 某一个空闲的 NM 领取到该 job。
  8. 该 NM 创建 Container,并产生 MRAppmaster。
  9. 下载 client 提交的资源到本地
  10. MrAppMaster 向 RM 申请运行多个 maptask 任务资源。
  11. RM 将运行 maptask 任务分配给另外两个 NodeManager,另两个 NodeManager, 分别领取任务并创建容器。
  12. MR 向两个接收到任务的 NodeManager 发送程序启动脚本,这两个NodeManager
  13. 分别启动 maptask,maptask 对数据分区排序。
  14. MrAppMaster 等待所有 maptask 运行完毕后,向 RM 申请容器,运行 reduce task
  15. reduce task 向 maptask 获取相应分区的数据。
  16. 程序运行完毕后,MR 会向 RM 申请注销自己。

猜你喜欢

转载自blog.csdn.net/weixin_43562705/article/details/89421060