Yarn的工作机制,以及MR Job提交运行过程

输入图片说明

在Yarn中将MapReduce1版本中的JobTracker两个主要功能分离成单独的组件,这两个功能是资源管理ResourceManager和任务调度(/监控)的ApplicationMaster。新的资源管理器全局管理所有应用程序计算资源的分配,每一个应用的ApplicationMaster负责相应的调度和协调。

Yarn中主要角色包括:ResourceManager、ApplicationMaster、NodeManager

先是ResourceManager,它负责启动每一个Job所属的ApplicationMaster、另外监控ApplicationMaster以及NodeManager的存在情况,并且负责协调集群上计算资源的分配。

然后是ApplicationMaster,每个job有一个ApplicationMaster,负责运行mapreduce的任务,并负责报告任务状态。

最后就是NodeManager,负责启动和管理节点中的容器。

MapReduce过程:

1.运行haddop jar命令之后产生RunJar进程,客户端向ResourceManager申请执行一个job。

2.然后ResourceManager收到请求后会向客户端返回job相关资源的提交路径以及JobID。

3.客户端会将job相关资源提交到相应的共享文件系统的路径下(/yarn-staging/jobID).

4.客户端向RM汇报提交结果。

5.RM会将这个job加入任务队列。

6.NodeManager通过与RM的心跳连接,从RM的任务队列中获取新的任务。

7.随后ResourceManager通过调度器为NodeManager分配资源容器。

8.RM在容器中启用MRAppmaster进程。

9.由创建的MRAppmaster负责分配在哪些NodeManager上运行map(即yarnchild进程)和reduce任务。

10.运行map和reduce任务的NodeManager从共享文件系统中获取job相关资源,包括jar文件,配置文件等。然后运行map和reduce任务。

11.job任务执行后,MRAppmaster向RM注销自己,让RM回收资源。

猜你喜欢

转载自my.oschina.net/134596/blog/1641302
今日推荐