码迷,mamicode.com
首页 > 其他好文 > 详细

MR基本的运作流程

时间:2017-06-25 23:12:09      阅读:351      评论:0      收藏:0      [点我收藏+]

标签:并行处理   val   shuff   hdfs   back   文件   tin   阶段   iterable   

MapReduce的核心是:分而治之,并行处理;以及其调度和处理数据的自动化。 

MR中主要是Map和Reduce两个阶段,其中基本流程是:

  1、mr的数据处理单位是一个split,一个split对应一个map任务,处理时会有多个map任务同时运行;当map从HDFS上读取一个split时,这里会有“移动计算,不移动数据”的机制来减少网络的数据传输,使得效率能最大化;

  2、获取到split时,默认会以TextInputFormat的格式读入,文件中的字符位置的偏移量作为 key,以及每一行的数据作为 value;

  3、之后则进入map函数中进行处理,这个阶段可以获取需要的数据并加以处理,并以key value的形式写出,作为后面reduce函数的输入;

  4、map到reduce之间会有一个shuffle的过程,大致过程是把不同key利用partitioner分散到各个reduce节点上去;

  5、在reduce上会先通过 比较排序(前面shuffl会有预排序) 进行文件的归并,之后进行reduce函数,在每个reduce函数中key是唯一的,对应的value则是一个 Iterable接口类型,通过Iterable可以遍历所有当前key对应的所有value;

  6、之后在reduce中对数据进行处理后,利用OutputFormat对处理后的key value保存到HDFS上即完成了整个流程。

 

MR基本的运作流程

标签:并行处理   val   shuff   hdfs   back   文件   tin   阶段   iterable   

原文地址:http://www.cnblogs.com/mzzcy/p/7078346.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!