0
 public static class Reduce extends Reducer<Text, Text, Text, Text>
    {
        private Text txtReduceOutputKey = new Text("");
        private Text txtReduceOutputValue = new Text("");
    public void reduce(Text key, Iterator<Text> values, Context context) throws IOException, InterruptedException
    {
        //some code;
    }
}

它没有给出任何错误。我能够访问该类,因为我能够启动这些变量txtReduceOutputKeytxtReduceOutputValue. 但该reduce方法在执行时被忽略。所以我无法运行上述方法中的代码//一些代码。我也在使用以下软件包。

import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.Job;

知道如何解决这个问题吗?

4

3 回答 3

0

这些问题是由于以下几个原因造成的:

  1. 不覆盖该reduce()方法 - 最好用注释override
  2. 前面评论中提到,忘记在驱动代码中设置reducer
于 2015-03-07T04:58:35.130 回答
0

这是因为Iterator。它应该被替换为Iterable. 谢谢你。

于 2015-03-08T22:38:28.730 回答
0

请确保您已在驱动程序代码中设置了Reducer 类。例如 :-

job.setReducerClass(Base_Reducer.class);
于 2015-03-07T04:24:40.757 回答