MapReduce模板,方便以后直接引用
- package jtlyuan.csdn.template;
- import java.io.IOException;
- import org.apache.Hadoop.conf.Configuration;
- import org.apache.hadoop.conf.Configured;
- import org.apache.hadoop.fs.Path;
- import org.apache.hadoop.io.LongWritable;
- import org.apache.hadoop.io.Text;
- import org.apache.hadoop.mapreduce.Job;
- import org.apache.hadoop.mapreduce.Mapper;
- import org.apache.hadoop.mapreduce.Reducer;
- import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
- import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
- import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
- import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
- import org.apache.hadoop.util.Tool;
- import org.apache.hadoop.util.ToolRunner;
- public class MyJob extends Configured implements Tool{
- /*MapClass静态类*/
- public static class MapClass extends Mapper<LongWritable,Text,Text,Text>{
- public void map(LongWritable key,Text value,Context context) throws IOException, InterruptedException{
- String[] citation = value.toString().split(",");
- context.write(new Text(citation[1]),new Text(citation[0]));
- }
- }
- /*Reduce静态类*/
- public static class Reduce extends Reducer<Text,Text,Text,Text>{
- public void reduce(Text key,Iterable<Text> values,Context context) throws IOException, InterruptedException{
- String csv = "";
- for(Text val:values){
- if(csv.length()>0){
- csv += ",";
- }
- csv += val.toString();
- }
- context.write(key, new Text(csv));
- }
- }
- /*driver驱动方法*/
- public int run(String[] args) throws Exception {
- Configuration conf = getConf();
- Job job = new Job(conf,"MyJobName");
- job.setJarByClass(MyJob.class);
- FileInputFormat.setInputPaths(job, new Path(args[0]));
- FileOutputFormat.setOutputPath(job, new Path(args[1]));
- job.setMapperClass(MapClass.class);
- job.setCombinerClass(Reduce.class);
- job.setReducerClass(Reduce.class);
- job.setInputFormatClass(TextInputFormat.class);
- job.setOutputFormatClass(TextOutputFormat.class);
- job.setOutputKeyClass(Text.class);
- job.setOutputValueClass(Text.class);
- System.exit(job.waitForCompletion(true)?0:1);
- return 0;
- }
- /*主函数入口*/
- public static void main(String[] args) throws Exception {
- int res = ToolRunner.run(new Configuration(),new MyJob(),args);
- System.exit(res);
- }
- }