Hadoop2.x中job的工作流程
1、当客户端提交一个job的时候,会创建一个RunJar进程,RunJar会像ResourceManager(RM)申请一个Job
2、ResourceManager(RM)会返回一个资源路径和jobid
3、客户端将资源数据上传至资源路径/jobid,
4、客户端将上传结果告知ResourceManager(RM)
5、RM将此job加入队列中,等待nodemanager的心跳
6、当applicationManager(AM)收到NodeManager(NM)的心跳时,就会在心跳响应中将这个任务交给nodemanager(NM),并且要求该NodeManager节点开一个子进程ApplicationMaster
7、当NodeManager(NM)收到这个响应之后,会对这个job进行拆分,拆分成子任务,例如maptask和reducetask
8、applicationmaster 拆分完任务之后,就会给applicationmanager发送请求,申请资源。
9、applicationmanager收到请求之后,会将请求转发给resourceSchedularg. resourceSchedular收到请求之后,会将资源描述信息(container)对象返回给 applicationmanager,然后applicationmanager会将此对象转发给 applicationmaster h. applicationmaster收到这个container之后,会将资源进行二次划分,将资源 分配给具体的子任务(MT,RT),划分完资源,applicationmaster会将子任务分 配到不同的nodemanager上区执行。并且还会监控任务的执行情况 i. 如果子任务执行失败,applicationmaster会继续向applicationmanager申 请新的资源用来重新启动失败的任务。
10、当所有的reduce任务执行完毕,applicationmaster向applicationmanager申请注销自己。
Hadoop2.x中job的调度过程
最新推荐文章于 2022-12-28 10:08:40 发布