Hadoop on yarn执行过程

yarn:只做运算资源的分配和调度,不参与用户程序内部工作,
正因为如此,我们的yarn可以成为一个通用的调度平台,
所以,包括我们的mr程序、storm程序、spark程序都可以运行在我们的yarn集群上

mapreduce和yarn的交互过程:

1、Client向Resource Manager请求运行一个程序
2、Resource Manager给Client返回一个jobid和一个用于提交资源的路径
eg:hdfs://..../.stage/
3、提交job资源到指定的路径 
eg:将一些job.xml\job.jar等文件提交到HDFS路径,例如:.../.stage/jobid/job.xml
                                                 .../.stage/jobid/job.jar
4、资源提交完毕返回给Resource Manager
5、Resource Manager初始化任务信息,加入调度队列
6、相对空闲的Node Manger领到任务
7、node manager根据任务信息创建container 并加载第三步中提交的资源文件
   容器中含有程序运行的资源文件+RAM+Vcores
8、client发送一个shell命令到nodeManager 来启动我们的MrAppMaster 
9、Node Manager向Resource Manager请求运算节点
10、MrAppMaster根据代码中设置数量 启动一定数量的maptask
11、MrAppMaster根据代码中设置数量 启动一定数量的reducetask

12、全部任务处理完毕之后,向ResourceManager注销自己

因此与老的MapReduce相比:

YARN把资源管理与任务调度的工作分离开来,减少了MapReduce中Job Tracker的压力。

猜你喜欢

转载自blog.csdn.net/weixin_42201566/article/details/86150992
今日推荐