From 2a5b2eda7c8e324e1e447552c2ddbbdd5724bc58 Mon Sep 17 00:00:00 2001 From: Weiwei Yang Date: Wed, 2 Jan 2019 21:39:45 +0800 Subject: [PATCH] MAPREDUCE-7174. Mapreduce example wordmedian should handle generic options. Contributed by Fei Hui. (cherry picked from commit 9e7196749ee025db7668c648743d1deb72d3ca28) --- .../java/org/apache/hadoop/examples/WordMedian.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-examples/src/main/java/org/apache/hadoop/examples/WordMedian.java b/hadoop-mapreduce-project/hadoop-mapreduce-examples/src/main/java/org/apache/hadoop/examples/WordMedian.java index 0ddfd3c239c..630c6ab894b 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-examples/src/main/java/org/apache/hadoop/examples/WordMedian.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-examples/src/main/java/org/apache/hadoop/examples/WordMedian.java @@ -35,6 +35,7 @@ import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.TaskCounter; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; +import org.apache.hadoop.util.GenericOptionsParser; import org.apache.hadoop.util.Tool; import org.apache.hadoop.util.ToolRunner; @@ -173,13 +174,15 @@ public class WordMedian extends Configured implements Tool { @Override public int run(String[] args) throws Exception { - if (args.length != 2) { + Configuration conf = new Configuration(); + String[] otherArgs = + new GenericOptionsParser(conf, args).getRemainingArgs(); + if (otherArgs.length != 2) { System.err.println("Usage: wordmedian "); return 0; } - setConf(new Configuration()); - Configuration conf = getConf(); + setConf(conf); Job job = Job.getInstance(conf, "word median"); job.setJarByClass(WordMedian.class); @@ -188,8 +191,8 @@ public class WordMedian extends Configured implements Tool { job.setReducerClass(WordMedianReducer.class); job.setOutputKeyClass(IntWritable.class); job.setOutputValueClass(IntWritable.class); - FileInputFormat.addInputPath(job, new Path(args[0])); - FileOutputFormat.setOutputPath(job, new Path(args[1])); + FileInputFormat.addInputPath(job, new Path(otherArgs[0])); + FileOutputFormat.setOutputPath(job, new Path(otherArgs[1])); boolean result = job.waitForCompletion(true); // Wait for JOB 1 -- get middle value to check for Median