18
2021
02

MR从读取数据开始到将最终结果写入HDFS经过哪些步骤?

第1步:InputFormat

InputFormat 到hdfs上读取数据

将数据传给Split


第2步:Split


Split将数据进行逻辑切分,

将数据传给RR


第3步:RR(RecordReader)

RR:将传入的数据转换成一行一行的数据,输出行首字母偏移量和偏移量对应的数据

将数据传给MAP


第4步:MAP

MAP:根据业务需求实现自定义代码

将数据传给Shuffle的partition

第5步:partition(分区)

partition:按照一定的分区规则,将key value的list进行分区。

将数据传给Shuffle的Sort


第6步: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

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。