packageWordCount_01;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapreduce.Mapper;importjava.io.IOException;publicclassMyMapextendsMapper<LongWritable,Text,Text,LongWritable>{@Overrideprotectedvoidmap(LongWritable key,Text value,Context context)throwsIOException,InterruptedException{//1 get values stringString valueString = value.toString();//2 split stringString wArr[]= valueString.split(" ");//3 for iteratorfor(int i =0;i < wArr.length;i++){//map out key/value
context.write(newText(wArr[i]),newLongWritable(1));}}}
Reduce类
packageWordCount_01;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapreduce.Reducer;importjava.io.IOException;importjava.util.Iterator;publicclassMyReduceextendsReducer<Text,LongWritable,Text,LongWritable>{@Overrideprotectedvoidreduce(Text key,Iterable<LongWritable> valueIn,Context context)throwsIOException,InterruptedException{Iterator<LongWritable> it = valueIn.iterator();long sum =0;//iterator count arrwhile(it.hasNext()){
sum += it.next().get();}
context.write(key,newLongWritable(sum));}}
Job类
packageWordCount_01;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapreduce.Job;importorg.apache.hadoop.mapreduce.lib.input.FileInputFormat;importorg.apache.hadoop.mapreduce.lib.output.FileOutputFormat;importjava.io.IOException;publicclassTestJob{publicstaticvoidmain(String[] args)throwsIOException,ClassNotFoundException,InterruptedException{Configuration conf =newConfiguration();//1 get a jobJob job =Job.getInstance(conf);//2 set jar main class
job.setJarByClass(TestJob.class);//3 set map class and reducer class
job.setMapperClass(MyMap.class);
job.setReducerClass(MyReduce.class);//4 set map reduce output type
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(LongWritable.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(LongWritable.class);//5 set key/value output file format and input/output pathFileInputFormat.setInputPaths(job,newPath("file:///simple/word.txt"));FileOutputFormat.setOutputPath(job,newPath("file:///simple/result"));//6 commit job
job.waitForCompletion(true);}}