MapReduce的总流程
1.InputFormat
InputFormat到dfs上读取数据,把数据传给split
2.Split
split将数据进行逻辑拆分,将数据传给RR
3.RR
RR将传入的数据转成一行一行的数据,输出首字母偏移量对应的数据
将数据传给MAP
4.Map
Map根据业务需求实现自定义代码,将数据传给shuff的partition
5.分区 partition
partiton按照一定的分区规则,将key value的list进行分区。将数据传给shuff的sort
6.排序 sort
sort对分区内的数据进行排序,把数据传给shuffle的combiner
7.combiner(可选)
combin对数据进行局部聚合
将数据传给shuffle的group
8 分组 group
group将相同的key的key提取出来作为唯一的key,
将相同的key对应的value获取出来作为value的list
将数据传给reduce
9 reduce
reduce:根据业务需求进行最终的合并汇总。
将数据传给outputFormat
10 outputFormat
outPutFormat:将数据写入HDFS.