0%

Yarn工作机制

Yarn工作机制

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