对于作业类型-Hadoop MapReduce,setNumMapTasks(int)未定义

对于作业类型-Hadoop MapReduce,setNumMapTasks(int)未定义,hadoop,mapreduce,Hadoop,Mapreduce,我无法将“job.setNumMapTasks(int)”添加到MapReduce程序的驱动程序中。当我尝试添加它时,我得到一个编译错误,声明“setNumMapTasks(int)对于作业类型是未定义的”。但是,我可以添加等效的减速机“job.setNumReduceTasks(int)”。在我看来,如果我能加上一个,我就应该能加上另一个。下面是我的司机。欢迎提出任何建议 public int run(String[] args) throws Exception { Configur

我无法将“job.setNumMapTasks(int)”添加到MapReduce程序的驱动程序中。当我尝试添加它时,我得到一个编译错误,声明“setNumMapTasks(int)对于作业类型是未定义的”。但是,我可以添加等效的减速机“job.setNumReduceTasks(int)”。在我看来,如果我能加上一个,我就应该能加上另一个。下面是我的司机。欢迎提出任何建议

public int run(String[] args) throws Exception {
    Configuration conf = getConf();      
    Job job = new Job(conf, "PiCalc");        
    job.setJarByClass(PiCalc.class);            
    Path in = new Path(args[0]);
    Path out = new Path(args[1]);
    FileInputFormat.setInputPaths(job, in);
    FileOutputFormat.setOutputPath(job, out);
    job.setJobName("PiCalc"); 
    job.setNumMapTasks(20);
    job.setNumReduceTasks(10);
    job.setMapperClass(MapClass.class);
    job.setReducerClass(Reduce.class);   
    job.setInputFormatClass(KeyValueTextInputFormat.class);
    job.setOutputFormatClass(TextOutputFormat.class);
    job.setOutputKeyClass(IntWritable.class);
    job.setOutputValueClass(IntWritable.class);
    System.exit(job.waitForCompletion(true)?0:1);
    return 0;
}  

无需设置作业的映射任务数。映射任务数等于输入文件中的块数

默认情况下,减速器的数量等于1,除非明确指定