}
}
public static void main(String[] args) throws InterruptedException,IOException,ClassNotFoundException{
Configuration conf=new Configuration();
Job job=Job.getInstance(conf,“top”);
job.setJobName(“top”);
job.setJarByClass(word.class);
job.setMapperClass(MyMapper.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(IntWritable.class);
job.setReducerClass(MyReduce.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job,new Path(args[1]));
job.waitForCompletion(true);
}
}
这是完整代码,作用是对文件中的词汇进行统计,统计不同的词汇分别有多少个。比如说文件内容是I love hadoop I love mapreduce。就会输出I 2, love 2这样的统计。下面是代码解析。
初开始先导入jar包
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
上面这三个包基本上每个mapreduce程序都要导入,像IOException包就是用来处理输入输出流中的异常问题
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
这三个包就是你在下面的代码中用到的数据类型
一般有Text,LongWritable,IntWritable,NullWritable等
Text:文本信息,字符串类型String
LongWritable:偏移量Long,表示该行在文件中的位置(不能