Yarn工作流程及Job提交机制

Yarn工作流程及Job提交机制
1.MR程序创建成功后,需要提交到HDFS上运行,MR程序提交到客户端所在的节点。

2.YarnRunner向ResourceManager申请提交一个Application。

3.ResourceManager返回应用程序需要提交的资源路径和ApplicationId。

4.YarnRunner提交资源到HDFS上,包含Job.xml、Job.split、xx.jar,资源提交完毕之后,向ResourceManager申请一个运行MRApplicationMaster,一个Application对应一个ApplicationMaster。

5.ResourceManager把提交的Job初始化成一个Task,放入Yarn的调度队列中去。

6.当执行到此Task时,其中一台NodeManager领取此任务,然后在此NodeManager上创建一个Container并创建一个MRApplicationMaster,然后下载HDFS上的计算资源(Job.xml、Job.split、xx.jar)到此NodeManager上。

7.MRApplicationMaster向ResourceManager申请运行MapTask的资源,同时ResourceManager向另外两台NodeManager分配执行MapTask的任务,这两台NodeManager分别创建Container,然后MRApplicationMaster将启动脚本发送给这两台NodeManager,启动MapTask任务。

8.当MapTask执行完毕之后,MRApplicationMaster向ResourceManager申请执行ReduceTask的资源,ResourceManager分配资源创建Container,Container下载xx.jar到此Container中,MRApplicationMaster启动此任务。

9.ReduceTask获取MapTask分区数据,进行计算。

10.当ReduceTask运行完毕之后,通知MRApplicationMaster,注销ReduceTask的资源,MRApplicationMaster向ResourceManager申请注销自己。