Mapreduce代码编写问题汇总

1、job.setOutputFormatClass(TextOutputFormat.class);报错

The method setOutputFormatClass(Class< ? extends OutputFormat>) in the type Job is not applicable for the arguments (Class< TextOutputFormat>)

原因:新旧API混合着用了 把以org.apache.hadoop.mapred开头导入的包都改成新版本的API。引入的是org.apache.hadoop.mapred.TextOutputFormat;换成 org.apache.hadoop.mapreduce.lib.input.TextInputFormat;

2、Error: java.io.IOException: Unable to initialize any output collector

原因:代码中job.setMapOutputKeyClass(Text.class);job.setOutputValueClass(Text.class);分别定义了Map输出的key和最终输出value类型都是Text类。但是代码中引入的是 com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider.Text;实际上应该是org.apache.hadoop.io.Text;

你可能感兴趣的:(mapreduce,报错,新旧API)