YARN框架机制

YARN框架机制

在执行job.waitforcompletion(true)时候会启动一个进程Runjar,相当于MapReduce程序提交客户端,靠这个与集群通信

1.Runjar向ResourceManager申请一个job

2.ResourceManager给Runjar返回一个job资源提交的路径(staging- dir)和为本job产生一个jobID

3.Runjar提交资源到HDFS上去

4.Runjar向ResourceManager汇报提交结果

5.ResourceManager把本job加入任务队列

6.NodeManager通过心跳机制向ResourceManager获取任务

7.NodeManage产生container,分配运行资源容器,包括CPU、内存等资源;同时也会把文件资源加载到容器

此时在container中代码、配置文件、资源都有了需要执行MapReduce,那么在哪台机器上运行,每个节点执行几个map,几个reduce,这些YARN就不知道了,YARN只做资源管理,它不能去启动mapreduce

由MapReduce框架封装的MRAPPMaster实现,就是mapreduce的应用程序的管理者,它是由YARN框架启动的

8.启动MRAPPMaster,到此YARN框架任务基本完成

9.MRAPPMaster向ResourceManager注册,获取在哪个节点运行

map task进程叫yarnChild

10.MRAPPMaster启动map task任务进程

11.MRAPPMaster启动reduce task任务进程

map执行完,MRAPPMaster会通知YARN回收

12.job完成后MRAPPMaster向ResourceManager注销自己

YARN框架,主要作用的为ResoucceManager--------管理NodeManaer

MapReduce框架汇总,主要作用的为MRAPPMaster-----------管理yarnChild