MapReduce On yarn运行过程详解

老的MapReduce主要包括Job Tracker和Task Tracker,YARN中主要是三个组件:Resource Manager、Node Manager和Application Master。Resource Manager负责全局资源分配,Application Master每个节点一个,负责当前节点的调度和协调。Node Manager是每台机器的代理,监控应用程序的资源使用情况,并汇报给Resource Manager。因此与老的MapReduce相比,YARN把资源管理与任务调度的工作分离开来,减少了MapReduce中Job Tracker的压力。
MapReduce On yarn运行过程详解_第1张图片
一:客户端向集群提交一个任务,该任务首先到ResourceManager中的ApplicationManager;
二:ApplicationManager收到任务之后,会在集群中找一个NodeManager,并在该NodeManager所在的DataNode上启动一个AppMaster进程,该进程用于进行任务的划分和任务的监控;
三:AppMaster启动起来之后,会向ResourceManager中的ApplicationManager注册其信息(目的是与之通信);
四:AppMaster向ResourceManager下的ResourceScheduler申请计算任务所需的资源;
五:AppMaster申请到资源之后,会与所有的NodeManager通信要求它们启动计算任务所需的任务(Map和Reduce);
六:各个NodeManager启动对应的容器用来执行Map和Reduce任务;
七:各个任务会向AppMaster汇报自己的执行进度和执行状况,以便让AppMaster随时掌握各个任务的运行状态,在某个任务出了问题之后重启执行该任务;
八:在任务执行完之后,AppMaster向ApplicationManager汇报,以便让ApplicationManager注销并关闭自己,使得资源得以回收;
最后,需要说明的是客户端在整个集群运行的过程中,可以通过AppMaster获取到任务的执行状态以及相应的进度信息。

你可能感兴趣的:(hadoop知识点)