hadoop:mapreduce的全过程

181 阅读1分钟

image.png

mapreduce过程的详细介绍

第1步:InputFormat模块
      InputFormat模块从hdf分布式文件系统上读取数据,将数据传给Split

第2步:Split
      Split将数据文件进行逻辑切分,而不是物理切分,将数据传给RR(RecordReader)

第3步:RR(RecordReader)
      把接收到的数据转换成一行一行的数据,输出行首字母偏移量和偏移量对应的数据,将数据传给map

第4步:MAP
      MAP:根据业务需求实现自定义代码
      将数据传给Shuffle的partition(shuffle的第一个环节)

第5步:partition
      按照一定的分区规则,将key value的list进行分区。
      将数据传给Shuffle的Sort

第6步:Sort
      对分区内的数据进行排序(shuffle的第二个环节)
      将数据传给combiner阶段(如果有的话)

第7步:combiner
      combiner:对数据进行局部聚合(shuffle的第三个环节)
      将数据传给merge阶段

第8步:merge
      将相同的key提取出来作为唯一的key,
      将相同key对应的value获取出来作为value的list,将数据传给Reduce

第9步:Reduce
      Reduce:根据业务需求进行最终的合并汇总。将数据传给outputFormat

第10步:outputFormat
      outputFormat:将数据写入HDFS

结合下面三张图可以清楚地理解shuffle过程

image.png image.png image.png