第一步:inputformat 数据读取
第二步:split 将获取的数据进行逻辑切分
第三步: recordReader(将数据以\n切分,进行再次切分,并输出key(行首字母的偏移量),value(一行的数据))
第四步: Map接收key(行首字母偏移量),value(一行的数据),根据业务需求编写代码,输出(key,value 的list)
输出给Shuffle(partition)
shffle(核心机制: 数据分区,排序,分组,ComBine,合并等过程)输出key value的list
第五步:partition :按照一定的规则对key,value 的 list 进行分区 输出给Shuffle(sort)
第六步:Sort :对每个分区内的数据进行排序。 输出给Shuffle(combiner)
第七步: Combiner: 在Map端进行局部聚合(汇总) 目的是为了减少网络带宽的开销 输出给Shuffle(group)
第八步: Group: 将相同key的key提取出来作为唯一的key,将相同key 对应的value 提取出来组装成一个value 的List 输出给Shuffle(reduce)
第九步: Reduce:根据业务需求对传入的数据进行汇总计算 输出给Shuffle(outputFormat)
第十步: outputFormat:将最终的结果的写入到HDFS
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。