public class main { public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException { Configuration conf = new Configuration(); conf.set("mapreduce.framework.name", "local"); Job job = Job.getInstance(conf); job.setJarByClass(main.class); job.setMapperClass(MyMapper.class); job.setReducerClass(MyReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(Text.class); //设置Reduce节点的个数为:1个 空1:_________________________________ FileInputFormat.setInputPaths(job, new Path("D:/mr/input")); FileOutputFormat.setOutputPath(job, new Path("D:/mr/output")); boolean res = job.waitForCompletion(true); System.exit(res ? 0 : 1); }
时间: 2024-04-28 15:23:40 浏览: 11
这段代码是一个简单的 Hadoop MapReduce 任务的驱动程序。在这个程序中,首先创建了一个 Configuration 对象,用于存储 Hadoop 集群的配置信息。然后创建了一个 Job 对象,设置了 Mapper 和 Reducer 类,以及输入和输出数据的格式和路径。其中,setInputPaths() 方法指定了输入数据的路径,setOutputPath() 方法指定了输出数据的路径。最后,调用 job.waitForCompletion() 方法提交并运行这个 MapReduce 任务,并等待任务完成。完成后,程序将返回一个布尔值表示任务是否成功执行,最后通过 System.exit() 方法结束程序的运行。
需要注意的是,空1处应该填写以下代码:job.setNumReduceTasks(1); 这行代码指定 Reduce 节点的个数为 1,即只有一个 Reduce 任务。