标签:并行处理 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上即完成了整个流程。
标签:并行处理 val shuff hdfs back 文件 tin 阶段 iterable
原文地址:http://www.cnblogs.com/mzzcy/p/7078346.html