IntelliJ中的Mapreduce作业失败

时间:2017-01-15 17:16:22

标签: java hadoop intellij-idea mapreduce

我正在尝试从IntelliJ内部运行Map-Reduce作业。这是我的跑步码,

public class ViewCount extends Configured implements Tool{

    @Override
    public int run(String[] args) throws Exception {
        Configuration conf = this.getConf();


        Job job = Job.getInstance(conf);
        job.setJobName("viewCount");
        job.setJarByClass(ViewCount.class);

        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);

        job.setMapperClass(Map.class);
        job.setReducerClass(Reduce.class);

        Path inputFilePath = new Path(args[0]);
        Path outputFilePath = new Path(args[1]);

        FileInputFormat.addInputPath(job, inputFilePath);
        FileOutputFormat.setOutputPath(job, outputFilePath);

        return job.waitForCompletion(true) ? 0:1;

    }

    public static void main(String[] args) throws Exception {

        int exitCode = ToolRunner.run(new ViewCount(), args);
        System.exit(exitCode);
    }

使用以下错误消息构建任务失败。

error: incompatible types: Job cannot be converted to JobConf
        FileOutputFormat.setOutputPath(job, outputFilePath);

Apached文档表明该方法实际上需要一份工作而不是JobConf,所以我做错了什么?

1 个答案:

答案 0 :(得分:0)

看看这些类来自哪些包。您可能正在混合包,您需要根据您的Hadoop版本使用正确包中的TextInputFormat。如果您使用的是Hadoop 2.x版,则需要导入不同的类(来自mapreduce包),与Hadoop版本1.x(具有mapred包)进行比较