Author: ddas
Date: Mon Nov 17 04:33:01 2008
New Revision: 718232

URL: http://svn.apache.org/viewvc?rev=718232&view=rev
Log:
HADOOP-4612. Removes RunJar's dependency on JobClient. Contributed by Sharad 
Agarwal.

Modified:
    hadoop/core/trunk/CHANGES.txt
    
hadoop/core/trunk/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamInputFormat.java
    
hadoop/core/trunk/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamJob.java
    
hadoop/core/trunk/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamUtil.java
    hadoop/core/trunk/src/core/org/apache/hadoop/util/GenericOptionsParser.java
    hadoop/core/trunk/src/core/org/apache/hadoop/util/RunJar.java

Modified: hadoop/core/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=718232&r1=718231&r2=718232&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Mon Nov 17 04:33:01 2008
@@ -108,6 +108,9 @@
 
     HADOOP-4126. Allow access to HDFS web UI on EC2 (tomwhite via omalley)
 
+    HADOOP-4612. Removes RunJar's dependency on JobClient.
+    (Sharad Agarwal via ddas)
+
   OPTIMIZATIONS
 
   BUG FIXES

Modified: 
hadoop/core/trunk/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamInputFormat.java
URL: 
http://svn.apache.org/viewvc/hadoop/core/trunk/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamInputFormat.java?rev=718232&r1=718231&r2=718232&view=diff
==============================================================================
--- 
hadoop/core/trunk/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamInputFormat.java
 (original)
+++ 
hadoop/core/trunk/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamInputFormat.java
 Mon Nov 17 04:33:01 2008
@@ -55,7 +55,7 @@
     Class readerClass;
 
     {
-      readerClass = StreamUtil.goodClassOrNull(c, null);
+      readerClass = StreamUtil.goodClassOrNull(job, c, null);
       if (readerClass == null) {
         throw new RuntimeException("Class not found: " + c);
       }

Modified: 
hadoop/core/trunk/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamJob.java
URL: 
http://svn.apache.org/viewvc/hadoop/core/trunk/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamJob.java?rev=718232&r1=718231&r2=718232&view=diff
==============================================================================
--- 
hadoop/core/trunk/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamJob.java
 (original)
+++ 
hadoop/core/trunk/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamJob.java
 Mon Nov 17 04:33:01 2008
@@ -705,7 +705,7 @@
           || 
inputFormatSpec_.equals(SequenceFileAsTextInputFormat.class.getSimpleName())) {
         fmt = SequenceFileAsTextInputFormat.class;
       } else {
-        c = StreamUtil.goodClassOrNull(inputFormatSpec_, defaultPackage);
+        c = StreamUtil.goodClassOrNull(jobConf_, inputFormatSpec_, 
defaultPackage);
         if (c != null) {
           fmt = c;
         } else {
@@ -725,7 +725,7 @@
     jobConf_.set("stream.addenvironment", addTaskEnvironment_);
 
     if (mapCmd_ != null) {
-      c = StreamUtil.goodClassOrNull(mapCmd_, defaultPackage);
+      c = StreamUtil.goodClassOrNull(jobConf_, mapCmd_, defaultPackage);
       if (c != null) {
         jobConf_.setMapperClass(c);
       } else {
@@ -736,7 +736,7 @@
     }
 
     if (comCmd_ != null) {
-      c = StreamUtil.goodClassOrNull(comCmd_, defaultPackage);
+      c = StreamUtil.goodClassOrNull(jobConf_, comCmd_, defaultPackage);
       if (c != null) {
         jobConf_.setCombinerClass(c);
       } else {
@@ -752,7 +752,7 @@
         jobConf_.setCombinerClass(ValueAggregatorCombiner.class);
       } else {
 
-        c = StreamUtil.goodClassOrNull(redCmd_, defaultPackage);
+        c = StreamUtil.goodClassOrNull(jobConf_, redCmd_, defaultPackage);
         if (c != null) {
           jobConf_.setReducerClass(c);
         } else {
@@ -767,7 +767,7 @@
       String[] args = inReaderSpec_.split(",");
       String readerClass = args[0];
       // this argument can only be a Java class
-      c = StreamUtil.goodClassOrNull(readerClass, defaultPackage);
+      c = StreamUtil.goodClassOrNull(jobConf_, readerClass, defaultPackage);
       if (c != null) {
         jobConf_.set("stream.recordreader.class", c.getName());
       } else {
@@ -784,7 +784,7 @@
     FileOutputFormat.setOutputPath(jobConf_, new Path(output_));
     fmt = null;
     if (outputFormatSpec_!= null) {
-      c = StreamUtil.goodClassOrNull(outputFormatSpec_, defaultPackage);
+      c = StreamUtil.goodClassOrNull(jobConf_, outputFormatSpec_, 
defaultPackage);
       if (c != null) {
         fmt = c;
       } else {
@@ -797,7 +797,7 @@
     jobConf_.setOutputFormat(fmt);
 
     if (partitionerSpec_!= null) {
-      c = StreamUtil.goodClassOrNull(partitionerSpec_, defaultPackage);
+      c = StreamUtil.goodClassOrNull(jobConf_, partitionerSpec_, 
defaultPackage);
       if (c != null) {
         jobConf_.setPartitionerClass(c);
       } else {

Modified: 
hadoop/core/trunk/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamUtil.java
URL: 
http://svn.apache.org/viewvc/hadoop/core/trunk/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamUtil.java?rev=718232&r1=718231&r2=718232&view=diff
==============================================================================
--- 
hadoop/core/trunk/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamUtil.java
 (original)
+++ 
hadoop/core/trunk/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamUtil.java
 Mon Nov 17 04:33:01 2008
@@ -28,6 +28,7 @@
 import java.util.List;
 import java.util.jar.*;
 
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.FSDataInputStream;
@@ -46,15 +47,14 @@
    * [-mapper program | -javamapper classname], -mapper and -javamapper are 
mutually exclusive.
    * (repeat for -reducer, -combiner) </pre>
    */
-  public static Class goodClassOrNull(String className, String defaultPackage) 
{
+  public static Class goodClassOrNull(Configuration conf, String className, 
String defaultPackage) {
     if (className.indexOf('.') == -1 && defaultPackage != null) {
       className = defaultPackage + "." + className;
     }
     Class clazz = null;
     try {
-      clazz = Class.forName(className);
+      clazz = conf.getClassByName(className);
     } catch (ClassNotFoundException cnf) {
-    } catch (LinkageError cnf) {
     }
     return clazz;
   }

Modified: 
hadoop/core/trunk/src/core/org/apache/hadoop/util/GenericOptionsParser.java
URL: 
http://svn.apache.org/viewvc/hadoop/core/trunk/src/core/org/apache/hadoop/util/GenericOptionsParser.java?rev=718232&r1=718231&r2=718232&view=diff
==============================================================================
--- hadoop/core/trunk/src/core/org/apache/hadoop/util/GenericOptionsParser.java 
(original)
+++ hadoop/core/trunk/src/core/org/apache/hadoop/util/GenericOptionsParser.java 
Mon Nov 17 04:33:01 2008
@@ -234,10 +234,13 @@
         conf.set("tmpjars", 
                  validateFiles(line.getOptionValue("libjars"), conf));
         //setting libjars in client classpath
-        ClassLoader loader = new URLClassLoader(getLibJars(conf), 
-            conf.getClassLoader());
-        Thread.currentThread().setContextClassLoader(loader);
-        conf.setClassLoader(loader);
+        URL[] libjars = getLibJars(conf);
+        if(libjars!=null && libjars.length>0) {
+          conf.setClassLoader(new URLClassLoader(libjars, 
conf.getClassLoader()));
+          Thread.currentThread().setContextClassLoader(
+              new URLClassLoader(libjars, 
+                  Thread.currentThread().getContextClassLoader()));
+        }
       }
       if (line.hasOption("files")) {
         conf.set("tmpfiles", 

Modified: hadoop/core/trunk/src/core/org/apache/hadoop/util/RunJar.java
URL: 
http://svn.apache.org/viewvc/hadoop/core/trunk/src/core/org/apache/hadoop/util/RunJar.java?rev=718232&r1=718231&r2=718232&view=diff
==============================================================================
--- hadoop/core/trunk/src/core/org/apache/hadoop/util/RunJar.java (original)
+++ hadoop/core/trunk/src/core/org/apache/hadoop/util/RunJar.java Mon Nov 17 
04:33:01 2008
@@ -27,7 +27,6 @@
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileUtil;
-import org.apache.hadoop.mapred.JobClient;
 
 /** Run a Hadoop job jar. */
 public class RunJar {
@@ -143,14 +142,6 @@
       }
     }
     
-    //adding libjars to the classpath
-    Configuration conf = JobClient.getCommandLineConfig();
-    URL[] libJars = GenericOptionsParser.getLibJars(conf);
-    if(libJars!=null) {
-      for(URL url : libJars){
-        classPath.add(url);
-      }
-    }
     ClassLoader loader =
       new URLClassLoader(classPath.toArray(new URL[0]));
 


Reply via email to