无法访问reduce类中的reduce方法

sc4hvdpw  于 2021-05-30  发布在  Hadoop
关注(0)|答案(3)|浏览(462)
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;
    }
}

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

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

你知道我该怎么修吗?

s5a0g9ez

s5a0g9ez1#

这些问题的产生有以下几个原因:
不覆盖 reduce() 方法-最好用 override 正如前面的评论中提到的,忘记在驱动程序代码中设置reducer

inkz8wg9

inkz8wg92#

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

job.setReducerClass(Base_Reducer.class);
bprjcwpo

bprjcwpo3#

那是因为 Iterator . 它应该被替换为 Iterable . 谢谢您。

相关问题