前言
#博学谷IT学习技术支持#
上篇文章主要介绍了MapReduce的输入和输出以及流程介绍,MapReduce的整个流程大致分为Map阶段、Shuffle阶段和Reduce阶段,本次主要对Shuffle阶段做进一步的梳理。
一、Shuffle简介
shuffle阶段是MapReduce中的一个重要环节,称为数据洗牌节点,MapReduce先经过Map数据拆分阶段,然后再经过shuffle数据清洗阶段,最后再由Redeuce阶段将清洗后的数据进行汇总,Shuffle阶段主要包括分区、排序、Combiner规约和分组。
二、Shuffle中各流程介绍
(一)自定义分区
-
概述
1、分区就是将一份数据根据一定的规则分到不同的文件中;
2、分区的实现的方式为:在Map阶段对K2打标记,标记相同的数据分到同一个区;
3、如果设置了分区则会有多个文件输出,一个Reduce输出一份文件,相同标记的K2会被同一个Reduce读取,输出到同一份文件中,多个Reduce则会生成多份文件;
4、Partition分区就是在Map结束之后,根据Key值不同,给每个Key打上标签,每个Reduce再分别处理不同标签的Key值