import java.util.*; import java.io.IOException; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.*; import org.apache.hadoop.mapred.*; public class WordCount { //Mapper class public static class E_EMapper extends MapReduceBase implements Mapper /*Output value Type*/ { //Map function public void map(LongWritable key, Text value, OutputCollector output, Reporter reporter) throws IOException { String line = value.toString(); StringTokenizer s = new StringTokenizer(line," "); while(s.hasMoreTokens()) { String lasttoken = s.nextToken(); output.collect(new Text(lasttoken), new IntWritable(1)); } } } //Reducer class public static class E_EReduce extends MapReduceBase implements Reducer< Text, IntWritable, Text, IntWritable > { //Reduce function public void reduce( Text key, Iterator values, OutputCollector output, Reporter reporter) throws IOException { int sum=0; while (values.hasNext()) { int val = values.next().get(); sum += val; } output.collect(key, new IntWritable(sum)); } } //Main function public static void main(String args[])throws Exception { JobConf conf = new JobConf(WordCount.class); conf.setJobName("max_eletricityunits"); conf.setOutputKeyClass(Text.class); conf.setOutputValueClass(IntWritable.class); conf.setMapperClass(E_EMapper.class); conf.setCombinerClass(E_EReduce.class); conf.setReducerClass(E_EReduce.class); conf.setInputFormat(TextInputFormat.class); conf.setOutputFormat(TextOutputFormat.class); FileInputFormat.setInputPaths(conf, new Path(args[0])); FileOutputFormat.setOutputPath(conf, new Path(args[1])); JobClient.runJob(conf); } }