0%

Yarn工作机制

Yarn工作机制

yarn的工作流程
  1. MapReduce运行job,MapReduce程序提交到客户端所在的节点,job.waitForCompletion创建YarnRunner
  2. 向ResourceManager申请一个Application,ResourceManager会生成一个Application的资源提交路径hdfs://../staging以及application_id
  3. 将job运行所需要的资源提交到该路径下的application_id文件中(资源包含Job.split、Job.xml、执行的jar程序)
  4. 资源提交完毕之后向ResourceManager申请运行mrAppMaster
  5. ResourceManager将任务放入队列中,NodeManager从队列中取任务,并创建Container,Container创建完毕启动mrAppMaster
  6. Container从HDFS下载job资源到本地
  7. mrAppMaster用来创建一系列的监控进程来跟踪作业的进度,同时获取输入分片,为每一个分片创建一个Map task和相应的reduce task
  8. 向ResourceManager申请运行MapTask容器,将任务放到队列中,Nodemanager从队列中取并创建容器
  9. mrAppMaster向取到MapTask任务的NodeManager节点发送程序启动脚本
  10. MapTask执行结束之后,mrAppMaster向ResourceManager申请运行ReduceTask容器,将任务放到队列中,Nodemanager从队列中取并创建容器,运行ReduceTask程序
  11. Reduce向Map获取相应分区数据
  12. 运行结束之后,mrAppMaster向ResourceManager发起注销

欢迎关注我的其它发布渠道