hadoop2任务提交过程

来源:互联网 发布:知世头像 编辑:程序博客网 时间:2024/06/06 03:20

1.在hadoop任意节点上通过 bin/hadoop jar命令开始任务;RunJar进程启动,相当于一个客户端client,计算输入分片。RunJar内置有一个Cluster对象,通它过可以向ResourceManager进行rpc通信;

2、客户端向ResourceManager申请作业ID,并且把作业资源文件包括MapReduce程序打包的jar文件、配置信息和客户端计算的输入划分信息存入共享文件系统(如hdfs);作业ID可以让作业加入队列,输入划分信息决定了ResourceManager为该作业启动多少个map任务等信息。

3.ResourceManager启动appMaster(一个java应用程序,主类是MRAppMaster),对作业进行初始化,接收来自共享系统(HDFS)的在客户端计算好的输入分片。每一个分片创建一个map任务,以及由客户端指定的或配置文件指定的默认的reduce的任务对象。

4.appMaster根据客户端计算好的数据分片信息划分map任务或者reduce任务,向resourceManager请求计算资源,包括cpu核数、内存资源等待以启动container。默认情况下,appMaster会根据分片信息,尽量把map任务分配在数据所在的本地节点上。

5.container启动后,首先将任务所需要的资源本地化,即接受共享文件系统中存储的作业的配置,jar文件等等,运行map或者reduce任务。

6.appMaster每隔一定时间接收任务的实时状态和进度,客户端每秒钟查询一次appMaster的任务状态。

7.作业完成后,appMaster和任务容器清理器工作状态。




原创粉丝点击