Reducer对键和值变为null

时间:2015-02-16 19:06:20

标签: hadoop

我的地图定义为

public static class FlightMapper 
    extends Mapper<Object, Text, Text, Text> {...}

我将reducer类定义为

public static class FlightReducer
    extends Reducer<Text,Text,Text,Text> {...}

我的reducer构造函数:

public void reduce(Text key, Text values, 
                Context context) throws IOException, InterruptedException {...}

但是在reducer构造函数的reducer中,当我打印键时,值为null。 我的主要职能:

    FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
    FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
    job.setNumReduceTasks(4);
    job.setJarByClass(FlightData.class);
    job.setMapperClass(FlightMapper.class);
    job.setMapOutputKeyClass(Text.class);
    job.setMapOutputValueClass(Text.class);
    job.setReducerClass(FlightReducer.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(Text.class);
    System.exit(job.waitForCompletion(true) ? 0 : 1);

我是Hadoop的新手,所以这可能是一个小错误。请帮忙。

1 个答案:

答案 0 :(得分:0)

我得到了解决方案,没有在构造函数中使用Iterable,因此reducer没有找到所需的构造函数。