提交流程
- 作业提交
-
Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 -
Client向ResourceManager申请一个作业id。 -
RM给Client返回资源提交的路径和作业id。 -
Client将jar包,切片信息,xml配置文件提交到指定路径。 -
Client提交完成后向MR申请运行mrApplicationMaster。
- 作业初始化
-
RM收到Client的请求以后,将job转换成一个Task,提交到任务队列中。 - 某一个空闲的
NodeManager领取该job。 -
NM创建Container,申请运行mrApp。 -
NM下载Client提交的资源。
- 任务分配
-
mrApp向RM请求运行多个MapTask任务。 -
RM将mrApp提交的任务分配给多个NM,NM分别启动MapTask。 -
MapTask运行完毕以后,mrApp向RM请求运行ReduceTask。 -
RduceTask从MapTask获取相应的分区数据。 - 程序运行完毕以后,
MR向RM注销自己。