版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/crazy_scott/article/details/83244451
先检查mapper输出和reducer输入的类型是否一致。
如果一致,需要在main中添加:
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(IntWritable.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
job.setOutputKeyClass和job.setOutputValueClas在默认情况下是同时设置map阶段和reduce阶段的输出,也就是说只有map和reduce输出是一样的时候才不会出问题。
当map和reduce输出是不一样的时候就需要通过job.setMapOutputKeyClass
和job.setMapOutputValueClas
来设置map阶段的输出。