MapReduce执行到reduce过程失败抛出IO
查看自己的代码:
public static void main(String args[]) throws IOException, ClassNotFoundException, InterruptedException {
Configuration conf = new Configuration();
Job wcjob = Job.getInstance(conf);
//设置整个job所用的那些类在哪个jar包上
wcjob.setJarByClass(WCRunner.class);
//本job使用哪个mapper和reducer类
wcjob.setMapperClass(WCMapper.class);
wcjob.setReducerClass(WCReducer.class);
//指定reducer的输出数据kv(key value)类型
wcjob.setOutputKeyClass(Text.class);
wcjob.setOutputValueClass(LongWritable.class);
//指定mapper的输出数据kv类型
wcjob.setOutputKeyClass(Text.class);
wcjob.setOutputValueClass(LongWritable.class);
//指定要处理的输入数据存放路径
FileInputFormat.setInputPaths(wcjob,new Path("file:///f:/wc/srcdata/"));
//指定输出结果的输出数据存放路径
FileOutputFormat.setOutputPath(wcjob,new Path("file:///f:/wc/output/"));
//将job提交给集群运行
wcjob.waitForCompletion(true);
}
发现代码中 wcjob.setOutputKeyClass(Text.class);与 wcjob.setOutputKeyClass(Text.class);中的Text类引用的并不是 import org.apache.hadoop.io.Text;而是java中的包,所以应换为 import org.apache.hadoop.io.Text;