Reducer类的定义有2种方式
1、
public static class KPIIPReducer extends MapReduceBase implements Reducer<Text, Text, Text, Text> {
//private Set<String> count = new HashSet<String>();
@Override
public void reduce(Text key, Iterator<Text> values, OutputCollector<Text, Text> output, Reporter reporter) throws IOException {
2、
public static class UserAgentReducer extends Reducer<Text, IntWritable, Text, DoubleWritable> {
@Override
public void reduce(Text key, Iterable<IntWritable> values, Context context)throws IOException, InterruptedException{
结果在复制的时候搞混乱了,在第2种方法里面写成了这样
public static class UserAgentReducer extends Reducer<Text, IntWritable, Text, DoubleWritable> {
public void reduce(Text key, Iterator<IntWritable> values, Context context)throws IOException, InterruptedException{
编译的时候报错,按eclipse的提示把@Override去掉,这样就会导致reduce方法不执行,
所以在定义reduce方法时,一定要加上@Override,这样编译报错,说明方法的声明有问题。而不是简单的去掉。