MR Chain(ChainMapper与ChainReducer)

ChainMapper/ChainReducer的实现原理

​ ChainMapper/ChainReducer主要为了解决线性链式Mapper而提出的。也就是说,在Map或者Reduce阶段存在多个Mapper,这些Mapper像linux管道一样,前一个Mapper的输出结果直接重定向到下一个Mapper的输入,形成一个流水线,形式类似于[MAP + REDUCE MAP*]。下图展示了一个典型的ChainMapper/ChainReducer的应用场景。

​ 在Map阶段,数据依次经过Mapper1和Mapper2处理;在Reducer阶段,数据经过shuffle和sort排序后,交给对应的Reduce处理,但Reducer处理之后还可以交给其它的Mapper进行处理,最终产生的结果写入到hdfs输出目录上。

注意:对于任意一个MapReduce作业,Map和Reduce阶段可以有无限多个Mapper,但是Reducer只能有一个

​ 通过链式MapReducer模式可以有效的减少网络间传输数据的带宽,因为大量的计算基本都是在本地进行的。如果通过迭代作业的方式实现多个MapReduce作业组合的话就会在网络间传输大量的数据,这样会非常的耗时。(所以这里只是一个MR作业,MR作业的迭代实现用JobControl:)

Chain

Hadoop Archives

概述

Hadoop Archives就是指Hadoop存档。Hadoop Archives是特殊格式的存档,它会映射一个文件系统目录。一个Hadoop Archives文件总是带有.har扩展名

Hadoop存档(har文件)目录包含

  • 元数据(采用_index和_masterindex形式)

  • 数据部分data(part- *)文件。

_index文件包含归档文件的名称和部分文件中的位置。

img