您的位置:首页 > 其它

MapReduce作业运行流程

2014-03-30 18:18 399 查看
一.MapReduce作业运行流程

      根据源码分析作业的提交流程时序图如下



MR的作业流程图:



1.在客户端启动一个作业。

2.通过JobClient向JobTracker请求一个Job ID和资源文件存放路径。

3.将运行作业所需要的资源文件复制到HDFS上,包括MapReduce程序打包的JAR文件、配置文件和客户端计算所得的输入划分信息(通过阅读源码获得分片的计算公式为:splitSize = max(minsize,min(maxsize,blockSize)),minsize默认值是1L,maxsize默认值是2的63次方减1)。这些文件都存放在JobTracker专门为该作业创建的文件夹中。文件夹名为该作业的Job
ID。JAR文件默认会有10个副本(mapred.submit.replication属性控制)。

4.开始提交任务(任务的描述信息,不是jar)。

5.JobTracker进程初始化任务,JobTracker接收到作业后,将其放在一个作业队列里,等待作业调度器对其进行调度。

6.读取HDFS上的要处理的文件,开始计算输入分片,每一个分片对应一个MapperTask。

7.TaskTracker通过心跳机制向JobTracker汇报当前运行情况和资源使用情况,JobTracker根据TaskTracker的汇报情况分配不同的执行任务。

8.TaskTracker根据分配到的任务下载所需的jar,配置文件等。

9.TaskTracker启动一个java child进程,用来执行具体的任务(MapperTask或ReducerTask)。

10.将结果写入到HDFS当中

到此MR的作业运行流程介绍完毕。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: