Hadoop的作业提交流程细节

hadoop任务的提交常用的两种,一种是测试常用的IDE远程提交,另一种就是生产上用的客户端命令行提交。

这个过程中的一些实体:

1. 客户端:提交MapReduce作业;

2. 资源管理器:协调集群上计算资源的分配。

3. 节点管理器:负责启动和监视集群中机器上的计算容器(container)。

4. 应用管理器(MapReduce应用程序master):负责协调运行MapReduce作业的任务。他和MapReduce任务在容器中运行,这些容器有资源管理器分配并由节点管理器进行管理。

5. 分布式文件系统:用来和其他实体间共享作业文件,一般是hdfs。

通用的任务程序提交步骤为:

1.客户端向resourceManager发送job请求

2.resourceManager返回存储路径,jobId给客户端

3.客户端创建路径把jobId,分片信息,配置文件信息,jar文件拷贝到返回的存储路径上

4.客户端向resourceManager报告提交完成

5.resourceManager在nodeManager上启动一个容器(container),在container中执行mrappmaster进程(主管mr任务执行)

6.mrappmaster取得分片信息,任务的相关配置,计算job所需资源

7.mrappmaster向resourceManager申请资源

8.resourceManager准备资源,mrappmaster启动container运行mapTask

9.maptask进程启动之后,根据给定的数据切片范围进行数据处理,处理流程:

1)利用客户指定的inputformat来获取recordReader读取数据,形成kv键值对。

2)将kv传递给客户定义的mapper类的map方法,做逻辑运算,并将map方法的输出kv收集到缓存。

10.mrappmaster监控所有的maptask进程完成之后,会根据用户指定的参数来启动相应的reduceTask进程,并告知reduceTask需要处理的数据范围

11.reducetask启动之后,根据appmaster告知的待处理的数据位置,从若干的maptask所在的机器上获取若干的maptask输出结果,并在本地进行一个归并排序,然后,再按照相同的key的kv为一组,调用客户自定义的reduce方法,并收集输出结果kv,然后按照用户指定的outputFormat将结果存储到外部设备。

12.所有任务定期向mrappmaster报告任务进度,所有任务完成后,mrappmaster报告resourceManager释放资源

赞(0) 打赏
特别声明:除特殊标注,本站文章均为原创,遵循CC BY-NC 3.0,转载请注明出处。三伏磨 » Hadoop的作业提交流程细节

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏