|
1 package zhouls.bigdata.myMapReduce.wordcount2;
2
3 import java.io.IOException;
4
5 import org.apache.hadoop.conf.Configuration;
6 import org.apache.hadoop.fs.Path;
7 import org.apache.hadoop.io.LongWritable;
8 import org.apache.hadoop.io.Text;
9 import org.apache.hadoop.mapreduce.Job;
10 import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
11 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
12
13 /**
14 * 用来描述一个特定的作业
15 * 比如,该作业使用哪个类作为逻辑处理中的map,哪个作为reduce
16 * 还可以指定该作业要处理的数据所在的路径
17 * 还可以指定改作业输出的结果放到哪个路径
18 * ....
19 * @author duanhaitao@itcast.cn
20 *
21 */
22 public>
23
24 public static void main(String[] args) throws Exception {
25
26 Configuration conf = new Configuration();
27
28 Job wcjob = Job.getInstance(conf);
29
30 //设置整个job所用的那些类在哪个jar包
31 wcjob.setJarByClass(WCRunner.class);
32
33
34 //本job使用的mapper和reducer的类
35 wcjob.setMapperClass(WCMapper.class);
36 wcjob.setReducerClass(WCReducer.class);
37
38
39 //指定本job使用combiner组件,组件所用的类为
40 wcjob.setCombinerClass(WCReducer.class);
41
42
43 //指定reduce的输出数据kv类型
44 wcjob.setOutputKeyClass(Text.class);
45 wcjob.setOutputValueClass(LongWritable.class);
46
47 //指定mapper的输出数据kv类型
48 wcjob.setMapOutputKeyClass(Text.class);
49 wcjob.setMapOutputValueClass(LongWritable.class);
50
51
52 // //指定要处理的输入数据存放路径
53 // FileInputFormat.setInputPaths(wcjob, new Path("hdfs://HadoopMaster:9000/wordcount/wc.txt/"));
54 //
55 // //指定处理结果的输出数据存放路径
56 // FileOutputFormat.setOutputPath(wcjob, new Path("hdfs://HadoopMaster:9000/out/wordcount/wc/"));
57
58 //指定要处理的输入数据存放路径
59 FileInputFormat.setInputPaths(wcjob, new Path("./data/wordcount/wc.txt"));
60
61 //指定处理结果的输出数据存放路径
62 FileOutputFormat.setOutputPath(wcjob, new Path("./out/wordcount/wc/"));
63
64
65 //将job提交给集群运行
66 wcjob.waitForCompletion(true);
67
68
69 }
70
71
72
73
74 } |
|