You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by cu...@apache.org on 2007/06/18 22:54:38 UTC

svn commit: r548489 - in /lucene/hadoop/trunk: CHANGES.txt src/java/org/apache/hadoop/mapred/TaskRunner.java

Author: cutting
Date: Mon Jun 18 13:54:37 2007
New Revision: 548489

URL: http://svn.apache.org/viewvc?view=rev&rev=548489
Log:
HADOOP-1493.  Permit specification of 'java.library.path' system property in 'mapred.child.java.opts' configuration property.  Contributed by Enis.

Modified:
    lucene/hadoop/trunk/CHANGES.txt
    lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/TaskRunner.java

Modified: lucene/hadoop/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/CHANGES.txt?view=diff&rev=548489&r1=548488&r2=548489
==============================================================================
--- lucene/hadoop/trunk/CHANGES.txt (original)
+++ lucene/hadoop/trunk/CHANGES.txt Mon Jun 18 13:54:37 2007
@@ -156,6 +156,10 @@
  49. HADOOP-1459.  Fix so that, in HDFS, getFileCacheHints() returns
      hostnames instead of IP addresses.  (Dhruba Borthakur via cutting)
 
+ 50. HADOOP-1493.  Permit specification of "java.library.path" system
+     property in "mapred.child.java.opts" configuration property.
+     (Enis Soztutar via cutting)
+
 
 Release 0.13.0 - 2007-06-08
 

Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/TaskRunner.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/TaskRunner.java?view=diff&rev=548489&r1=548488&r2=548489
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/TaskRunner.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/TaskRunner.java Mon Jun 18 13:54:37 2007
@@ -257,10 +257,24 @@
         int port = conf.getInt("mapred.task.tracker.report.port", 50050) + 1;
         javaOpts = replaceAll(javaOpts, "@port@", Integer.toString(port));
         String [] javaOptsSplit = javaOpts.split(" ");
+        //Add java.library.path; necessary for native-hadoop libraries
+        String libraryPath = System.getProperty("java.library.path");
+        if (libraryPath != null) {
+          boolean hasLibrary = false;
+          for(int i=0; i<javaOptsSplit.length ;i++) { 
+            if(javaOptsSplit[i].startsWith("-Djava.library.path=")) {
+              javaOptsSplit[i] += sep + libraryPath;
+              hasLibrary = true;
+              break;
+            }
+          }
+          if(!hasLibrary)
+            vargs.add("-Djava.library.path=" + libraryPath);
+        }
         for (int i = 0; i < javaOptsSplit.length; i++) {
           vargs.add(javaOptsSplit[i]);
         }
-
+        
         // Add classpath.
         vargs.add("-classpath");
         vargs.add(classPath.toString());
@@ -274,11 +288,7 @@
         vargs.add("-Dhadoop.tasklog.purgeLogSplits=" + conf.getBoolean("mapred.userlog.purgesplits", true));
         vargs.add("-Dhadoop.tasklog.logsRetainHours=" + conf.getInt("mapred.userlog.retain.hours", 12)); 
 
-        // Add java.library.path; necessary for native-hadoop libraries
-        String libraryPath = System.getProperty("java.library.path");
-        if (libraryPath != null) {
-          vargs.add("-Djava.library.path=" + libraryPath);
-        }
+        
 
         // Add main class and its arguments 
         vargs.add(TaskTracker.Child.class.getName());  // main of Child