现在我有一个4相MapReduce工作如下:链接多减速器在一个Hadoop MapReduce工作
Input-> Map1 -> Reduce1 -> Reducer2 -> Reduce3 -> Reduce4 -> Output
我注意到有ChainMapper
类的Hadoop其中可以链接一些映射器变成一个大映射器,并保存映射阶段之间的磁盘I/O成本。还有一个ChainReducer
类,但它不是一个真正的“链减速器”。它只能支持这样的工作:
[Map+/ Reduce Map*]
我知道我可以设置4点MR的工作为我的任务,在过去的三年工作使用默认映射器。但是这会花费大量的磁盘I/O,因为缩减器应该将结果写入磁盘以让后续的映射器访问它。是否有其他Hadoop内置功能来链接我的减速器以降低I/O成本?
我正在使用Hadoop 1.0.4。
如果可能的话,我也会对此非常感兴趣。 –