Hadoop:MapReduce框架处理数据的流程

一:Map阶段

第一步:InputForMat读取数据
第二步:Split进行逻辑切分(默认128M切一次)
第三步:RR数据切分一行一行的key,value形式,key是行首字符的偏移量,【key1,value1】
    value是行首字符偏移量对应的一行数据
第四步:根据实际需求编写map代码实现效果,、
    map的输入是:key,value的     list 【key2,value2】
    map的输出是:key    value的list 【key2,{value2…}】

二:Shuffle阶段

第五步:Partition(分区)按照一定机制行进分区
第六步:sort(排序)对每一个分区进行排序
第七步:Combiner(局部聚合):减少网络开销。注意这一步是可选的,不是所有的场景都适应
第八步:Group(分组):
    把Map输出的key相同的key,提取出来作为一个唯一的key,
    把相同key对应的value提取出来组成一个value的List 【key,{value.value…}】

三:Reduce阶段

第九步:按照业务需求进行对数据的处理,处理完的结果是【key3,value3】输出给OutPutForMat
第十步:OutPutForMat写入到HDFS文件系统

其中:Shuffle中的Partition、Sort、ComBiner 是属于Map阶段。
           Group属于Reduce阶段

你可能感兴趣的:(Hadoop:MapReduce框架处理数据的流程)