瀏覽代碼

MAPREDUCE-3283. mapred classpath CLI does not display the complete classpath. Contributed by Varun Saxena.

cnauroth 10 年之前
父節點
當前提交
60dc848f23

+ 3 - 0
hadoop-mapreduce-project/CHANGES.txt

@@ -77,6 +77,9 @@ Release 2.7.0 - UNRELEASED
     MAPREDUCE-6206. TestAggregatedTransferRate fails on non-US systems (Jens
     Rabe via jlowe)
 
+    MAPREDUCE-3283. mapred classpath CLI does not display the complete classpath
+    (Varun Saxena via cnauroth)
+
 Release 2.6.0 - 2014-11-18
 
   INCOMPATIBLE CHANGES

+ 8 - 4
hadoop-mapreduce-project/bin/mapred

@@ -148,11 +148,15 @@ for f in $HADOOP_MAPRED_HOME/modules/*.jar; do
 done
 
 if [ "$COMMAND" = "classpath" ] ; then
-  if $cygwin; then
-    CLASSPATH=$(cygpath -p -w "$CLASSPATH" 2>/dev/null)
+  if [ "$#" -gt 0 ]; then
+    CLASS=org.apache.hadoop.util.Classpath
+  else
+    if $cygwin; then
+      CLASSPATH=$(cygpath -p -w "$CLASSPATH" 2>/dev/null)
+    fi
+    echo $CLASSPATH
+    exit 0
   fi
-  echo $CLASSPATH
-  exit
 fi
 
 # cygwin path translation

+ 9 - 1
hadoop-mapreduce-project/bin/mapred.cmd

@@ -94,6 +94,14 @@ if "%1" == "--loglevel" (
   @rem add modules to CLASSPATH
   set CLASSPATH=%CLASSPATH%;%HADOOP_MAPRED_HOME%\modules\*
 
+  if %mapred-command% == classpath (
+    if not defined mapred-command-arguments (
+      @rem No need to bother starting up a JVM for this simple case.
+      @echo %CLASSPATH%
+      exit /b
+    )
+  )
+
   call :%mapred-command% %mapred-command-arguments%
   set java_arguments=%JAVA_HEAP_MAX% %HADOOP_OPTS% -classpath %CLASSPATH% %CLASS% %mapred-command-arguments%
   call %JAVA% %java_arguments%
@@ -102,7 +110,7 @@ goto :eof
 
 
 :classpath
-  @echo %CLASSPATH%
+  set CLASS=org.apache.hadoop.util.Classpath 
   goto :eof
 
 :job