第一步 InputFormat
Inputformat到hdfs上读取数据 将数据传给Split
第二步 Split
Split将数据进行逻辑切分 将数据传给RR
第三步 RR(RecordReader)
RR:将传入的数据转换成一行一行的数据,输入行首字母偏移量和对应数据 将数据传给Map
第四步 Map
map根据业务需求实现自定义代码 将数据传给shuffle的partition
第五步partition(分区)
partition:按照一定的分区规则,将key value的list进行分区 将数据传给shuffle的sort
第六步sort(排序)
Sort:对分区内的数据进行排序 将数据传给Shuffle的combiner
第7步:combiner
combiner:对数据进行局部聚合。 将数据传给Shuffle的Group
第8步:Group
Group:将相同key的key提取出来作为唯一的key, 将相同key对应的value获取出来作为value的list 将数据传给Reduce
第9步:Reduce
Reduce:根据业务需求进行最终的合并汇总。 将数据传给outputFormat
第10步:outputFormat
outputFormat:将数据写入HDFS