我的地图定义为
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的新手,所以这可能是一个小错误。请帮忙。
答案 0 :(得分:0)
我得到了解决方案,没有在构造函数中使用Iterable,因此reducer没有找到所需的构造函数。