Author: vinodkv Date: Wed May 8 18:28:22 2013 New Revision: 1480394 URL: http://svn.apache.org/r1480394 Log: MAPREDUCE-5159. Change ValueAggregatorJob to add APIs which can support binary compatibility with hadoop-1 examples. Contributed by Zhijie Shen.
Modified: hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/lib/aggregate/ValueAggregatorJob.java Modified: hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt?rev=1480394&r1=1480393&r2=1480394&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt (original) +++ hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt Wed May 8 18:28:22 2013 @@ -221,6 +221,9 @@ Release 2.0.5-beta - UNRELEASED MAPREDUCE-5036. Default shuffle handler port should not be 8080. (Sandy Ryza via tomwhite) + MAPREDUCE-5159. Change ValueAggregatorJob to add APIs which can support + binary compatibility with hadoop-1 examples. (Zhijie Shen via vinodkv) + OPTIMIZATIONS MAPREDUCE-4974. Optimising the LineRecordReader initialize() method Modified: hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/lib/aggregate/ValueAggregatorJob.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/lib/aggregate/ValueAggregatorJob.java?rev=1480394&r1=1480393&r2=1480394&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/lib/aggregate/ValueAggregatorJob.java (original) +++ hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/lib/aggregate/ValueAggregatorJob.java Wed May 8 18:28:22 2013 @@ -102,15 +102,17 @@ public class ValueAggregatorJob { /** * Create an Aggregate based map/reduce job. - * + * * @param args the arguments used for job creation. Generic hadoop * arguments are accepted. + * @param caller the the caller class. * @return a JobConf object ready for submission. - * + * * @throws IOException * @see GenericOptionsParser */ - public static JobConf createValueAggregatorJob(String args[]) + @SuppressWarnings("rawtypes") + public static JobConf createValueAggregatorJob(String args[], Class<?> caller) throws IOException { Configuration conf = new Configuration(); @@ -159,7 +161,7 @@ public class ValueAggregatorJob { } String userJarFile = theJob.get("user.jar.file"); if (userJarFile == null) { - theJob.setJarByClass(ValueAggregator.class); + theJob.setJarByClass(caller != null ? caller : ValueAggregatorJob.class); } else { theJob.setJar(userJarFile); } @@ -183,6 +185,21 @@ public class ValueAggregatorJob { return theJob; } + /** + * Create an Aggregate based map/reduce job. + * + * @param args the arguments used for job creation. Generic hadoop + * arguments are accepted. + * @return a JobConf object ready for submission. + * + * @throws IOException + * @see GenericOptionsParser + */ + public static JobConf createValueAggregatorJob(String args[]) + throws IOException { + return createValueAggregatorJob(args, ValueAggregator.class); + } + public static JobConf createValueAggregatorJob(String args[] , Class<? extends ValueAggregatorDescriptor>[] descriptors) throws IOException { @@ -199,7 +216,15 @@ public class ValueAggregatorJob { job.set("aggregator.descriptor." + i, "UserDefined," + descriptors[i].getName()); } } - + + public static JobConf createValueAggregatorJob(String args[], + Class<? extends ValueAggregatorDescriptor>[] descriptors, + Class<?> caller) throws IOException { + JobConf job = createValueAggregatorJob(args, caller); + setAggregatorDescriptors(job, descriptors); + return job; + } + /** * create and run an Aggregate based map/reduce job. *