我有一个驱动程序类,mapper类和reducer类。 mapreduce工作运行正常。但是期望的事情并没有到来。我已将System.out.println语句放在reducer中。我查看了mapper和reducer的日志。我在mapper中放入的System.out.println语句可以在日志中看到,但是在日志中看不到reducer中的println语句。减速机根本没有发动可能吗?
这是reducer的日志。
答案 0 :(得分:0)
我认为此问题基于您之前问题中的代码:mapreduce composite Key sample - doesn't show the desired output
.ui file -> pyuic -> .py
由于public class CompositeKeyReducer extends Reducer<Country, IntWritable, Country, IntWritable> {
public void reduce(Country key, Iterator<IntWritable> values, Context context) throws IOException, InterruptedException {
}
}
方法签名错误,因此未运行reduce。你有:
reduce
应该是:
public void reduce(Country key, Iterator<IntWritable> values, Context context)
为了确保不再发生这种情况,您应该将public void reduce(Country key, Iterable<IntWritable> values, Context context)
注释添加到课程中。这将告诉您是否签名错误。
答案 1 :(得分:0)
代码没有变化。它现在有效。 我所做的只是重新启动了我的Hadoop Cloudera图像,它现在正常工作。我无法相信这一点。