mapreduce程序在yarn上运行的流程

 
  

自己学习mapreduce的一点简单的心得

1.当我们在准备在yarn上运行一个mapreduce程序时,job.waitForCompletion()就会去Resource Manager发出一个请求,请求运行一个m r程序;

2.hdfs在获得这个请求之后,会去分配一个jobid和一个job资源提交的路径;

3.接下来就是准备向HDFS提交所需要的资源,分别是所需要的jar包以及计算切片后得到的切片信息的list信息;

4.准备好资源后,告知R M,向其申请一个容器来运行MRAPPMaster进程;

5.MRAPPMaster在得到请求后,会发布一个创建相应容器的任务,告诉相应的nodemanager,让其创建相应的容器;

6.创建好容器之后,nodemanager会去HDFS上下载启动MRAPPMaster需要的程序文件;

7.程序文件准备好之后,hdfs会发送一个启动MRAPPMaster的shell命令,然后预先创建了MRAPPMaster容器的nodemanager会执行这个shell命令;

8.此时,MRAPPMaster会去想R M请求申请若干容器用来给相应的nodemanager来启动相应的yarnchild,这里容器的数量取决于切片数量以及reducetask来决定;

9.接下来,相应的nodemanager就会去创建相应的容器来准备启动yarnchild程序;

10.MRAPPMaster发送启动yarnchild程序的shell命令,相应准备好容器的nodemanager就会执行shell命令启动yarnchild;

11.待到最后一个reducetask运行完毕之后,MRAPPMaster会向Resource Manager汇报job运行完毕并且退出。资源会被nodemanager回收。


下面有详细图解 ,只是小白的个人理解,如有不对之处,敬请赐教。

你可能感兴趣的:(mapreduce程序在yarn上运行的流程)