YARN框架:资源调度框架
在执行job.waitforcompletion(true)时候会启动一个进程Runjar,至关于MapReduce程序提交客户端,靠这个与集群通讯spa
1.Runjar向ResourceManager申请一个jobblog
2.ResourceManager给Runjar返回一个job资源提交的路径(staging- dir)和为本job产生一个jobID队列
3.Runjar提交资源到HDFS上去进程
4.Runjar向ResourceManager汇报提交结果内存
5.ResourceManager把本job加入任务队列资源
6.NodeManager经过心跳机制向ResourceManager获取任务it
7.NodeManage产生container,分配运行资源容器,包括CPU、内存等资源;同时也会把文件资源加载到容器io
此时在container中代码、配置文件、资源都有了须要执行MapReduce,那么在哪台机器上运行,每一个节点执行几个map,几个reduce,这些YARN就不知道了,YARN只作资源管理,它不能去启动mapreduceast
由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