在Hadoop中,mapper和reducer类应该扩展Mapper或Reducer接口(interface)。但是,我找不到组合器类应扩展的接口(interface)。 Hadoop中的组合器类的签名是什么?

最佳答案

组合器扩展了Reducer接口(interface),其签名应发出与使用时相同的键/值类型,例如,字数组合器具有以下签名(对于新的o.a.h.mapreduce和旧的o.a.h.mapred包):

public class MyCombinerNewApi
    extends Reducer<Text, IntWritable, Text, IntWritable> {

}

public class MyCombinerOldApi
    implements Reducer<Text, IntWritable, Text, IntWritable> {

}

有时,Combiner类与Reducer类相同(如“字数统计”示例中一样)。

一些不错的链接,更详细地说明了Combiners:
  • Phillipe Adjimun在"To use or not to use a combiner"上的博客
  • Pro Hadoop Book - Combiners
  • 08-25 07:22
    查看更多