import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.io.WritableComparable;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;

public class WordCountDriver {

    public static void main(String[] args) {
	JobConf conf = new JobConf(WordCountDriver.class);
	conf.setJobName("WordCounter");

	conf.setOutputKeyClass(Text.class);
	conf.setOutputValueClass(IntWritable.class);

	if (args.length < 2) {
	    System.out.println("Usage: WordCounter <input path> <output path>");
	    System.exit(0);
	}
	conf.setInputPath(new Path(args[0]));
	conf.setOutputPath(new Path(args[1]));

	conf.setMapperClass(WordCountMapper.class);
	conf.setCombinerClass(WordCountReducer.class);
	conf.setReducerClass(WordCountCountReducer.class);

	/* Local execution */
	conf.set("mapred.job.tracker", "local");

	try {
	    JobClient.runJob(conf);
	} catch (Exception e) {
	    e.printStackTrace();
	}
    }

}
