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
来源:站长平台