MapReduce运行到YARN的过程详解
1、客户端client向YARN主节点ResourceManager提交作业job 比如统计4G文件中每个单词出现的次数统计结果
在hadoop环境下提交作业的语句:bin/yarn jar XXX.jar MainClass args
2、主节点ResourceManager在某个DataNode从节点上启动一个Container运行applicationMaster(运行应用的管理者)
注:Container是一个容器 其中放了内存和硬盘空间
applicationMaster是临时的作业管理者, 相当于项目经理 。applicationMaster根据作业的大小等情况,可以向ResourceManager主节点申请内存空间、cpu以及硬盘等资源。
3、applicationMaster向ResourceManager请求资源,为了运行MapReduce中所有的任务;
ResourceManager将分配nodeManager上的资源,并告知applicationMaste申请的资源都在那台机器上。
4、applicationMaster联系nodeManager,启动对应Container中的相关task(map task,reduce task)。
5、运行的task会实时的向applicationMaster进行汇报(心跳机制),用于监听整个应用。
6、当所有task(reduceTask)运行完成,applicationMaste告知ResourceManager,销毁applicationMaste。