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