public class RunJob {
// 全限定名 public static void main(String[] args) { Configuration conf = new Configuration(); // 本地多线程模拟执行。 // conf.set("fs.defaultFS", "hdfs://node3:8020"); // conf.set("mapred.jar", "C:\\Users\\Administrator\\Desktop\\wc.jar"); try { FileSystem fs = FileSystem.get(conf);
Job job = Job.getInstance(conf); job.setJobName("wc"); job.setJarByClass(RunJob.class);
job.setMapperClass(WordCountMapper.class); job.setReducerClass(WordCountReduce.class);
job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(IntWritable.class);
// job 输入数据和输出数据的目录 FileInputFormat.addInputPath(job, new Path("/word.txt"));
Path outPath = new Path("/output/wc2");// job执行结果存放的目录。该目录在执行前不能存在。
if (fs.exists(outPath)) { fs.delete(outPath, true); } FileOutputFormat.setOutputPath(job, outPath);
boolean f = job.waitForCompletion(true); if (f) { System.out.println("任务执行成功!"); } } catch (Exception e) { e.printStackTrace(); }
} } |