hadoop JobClient 提交作业 hadoop任务提交流程_客户端


大家好,今天我们来说一下,Hadoop中MapReduce提交作业流程:

涉及组件:

1)客户端: 到RM (RessourceManager) 获取作业编号

检验驶入路径是否存在

检验输出路径是否不存在

计算切片信息

将配置文件/jar包/切片发送到HDFS以作业编号命名的目录(HDFS目录)

向RM发送请求,提交作业

监控作业执行的进度,每秒发送一次请求,请求作业执行进度,如果进 度有变,则

在控制台打印进度信息

2)HDFS: 存储噢诶子文件的jar包和切片信息等;

3) RessourceManager:调度NodeManager,让其分配一个容器(资源),运行MRAppMaster程序

RM会调度NodeManager分配容器,运行map任务或者reduce任务。

4)NodeManger : 分配和管理容器,根据MRAppMaster 的请求,运行任务(map 或 reduce) 当任务结束后,通知MRAppMaster,MRAppMaster做后续处理;

5)MRAppMaster :

负责计算的监控/失败重试/计算调度

收集HDFS上的配置文件,jar包,切片信息

分析需要多少个map任务,多少个reduce任务

向RM发送请求,让其分配容器,运行map任务

当map任务完成5%时,为reduce申请容器;

以上图为例: 1) 客户端运行job任务

2)客户端向ResourceManager取作业编号;

3)客户端检查输入输出路径,计算切片信息

4) 将数据发送到HDFS上,并将信息通知ResourceManager

5) ResourceManager获取信息后,通知NodeManager分配容器建立MRAppMaster

6) MRAppMaster建立,(需要1G内存的虚拟核心,如果任务1G内存不够则任务失败)

7)MRAppMaster建立后,获取HDFS资源信息,计算需要多少map和reduce来处理任务job

8) 向ResourcesManager申请容器

9) ResourcesManager通知NodeManager分配容器

10) MRAppMaster和NodeManager建立联系,NodeManager处理MRAppMaster调度过来针对job任务的map和reduce处理任务,分配响应的容器

11) 在相应分配的容器内进行map计算,MRAppMaster监控任务执行进度,当map任务执行了5%后,MRAppMaster再向ResourcesManager申请资源进行reduce计算;