Combiner逻辑总是与Reducer逻辑相同吗?

时间:2015-11-23 10:07:08

标签: java hadoop mapreduce

Hadoop MapReduce中的Combiner逻辑是否始终与Reducer逻辑相同?或者是否存在Combiner逻辑与Reducer逻辑不同的任何情况?

2 个答案:

答案 0 :(得分:1)

  1. Combiner class&根据您的要求,减速器等级可能相同也可能不同。
  2. 但是Combiner& Reducer必须通过扩展Reducer

    来实现reduce()方法

    e.g。

    public void reduce(Key key, Iterable<IntWritable> values,
                  Context context) throws IOException, InterruptedException {
    
  3. 如果两者都是Combiner&amp; Reducer是不同的,将这些类设置如下

     job.setCombinerClass(YourCombiner.class);
     job.setReducerClass(YourReducer.class);
    

答案 1 :(得分:-1)

在大多数情况下,组合逻辑与reducer逻辑相同。虽然我们也可能有与reducer不同的组合逻辑。

组合器必须与reducer具有相同的输入类型。

Combiner将合并每个地图输出的结果。由于这一点,一些值在映射器阶段本身被组合,并且由于此网络流量急剧减少,因为需要从映射器遍历到减少器的值越来越少。