hadoop -version 给我错误的结果为什么? Hadoop 1.2.1
hadoop -version giving me wrong result why? Hadoop 1.2.1
我在 hadoop 版本 1.2.1
上执行了以下命令:hadoop -version
vishrant@ubuntu:~$ hadoop -version
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu0.12.04.1)
OpenJDK Server VM (build 24.79-b02, mixed mode)
我期待的是 hadoop 版本,但我的系统上安装了 JDK 版本。我知道正确的命令是 hadoop version
[without hyphen] 但我没有得到错误,而是得到了 JDK why?
的版本
看起来 1.2.x
的 hadoop
脚本比最新版本的检查要少得多,此时(2016 年)它已经有大约 3 年的历史了。你可以看到它的来源 here.
在 1.2.x
脚本中,如果您键入 hadoop -version
,脚本将命中最终的 else
语句,计算出 class 到 运行 和将 $CLASS
设置为 $COMMAND
(第 338 行)而不是 class.
您可以在第 434 行看到 运行 的内容:
exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"
因此,如果您键入 hadoop version
,它将 运行(删除了 class 路径内容以使其简短):
java -Dproc_version -Xmx1000m -classpath <LIBS> org.apache.hadoop.util.VersionInfo
如果你输入 hadoop -version
你会得到:
java -Dproc_-version -Xmx1000m -classpath <LIBS> -version
因此,因为默认行为是将 $CLASS
设置为 $COMMAND
,所以您基本上会得到它 运行ning:
java -version
这就是你得到的。
我在 hadoop 版本 1.2.1
上执行了以下命令:hadoop -version
vishrant@ubuntu:~$ hadoop -version java version "1.7.0_79" OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu0.12.04.1) OpenJDK Server VM (build 24.79-b02, mixed mode)
我期待的是 hadoop 版本,但我的系统上安装了 JDK 版本。我知道正确的命令是 hadoop version
[without hyphen] 但我没有得到错误,而是得到了 JDK why?
看起来 1.2.x
的 hadoop
脚本比最新版本的检查要少得多,此时(2016 年)它已经有大约 3 年的历史了。你可以看到它的来源 here.
在 1.2.x
脚本中,如果您键入 hadoop -version
,脚本将命中最终的 else
语句,计算出 class 到 运行 和将 $CLASS
设置为 $COMMAND
(第 338 行)而不是 class.
您可以在第 434 行看到 运行 的内容:
exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"
因此,如果您键入 hadoop version
,它将 运行(删除了 class 路径内容以使其简短):
java -Dproc_version -Xmx1000m -classpath <LIBS> org.apache.hadoop.util.VersionInfo
如果你输入 hadoop -version
你会得到:
java -Dproc_-version -Xmx1000m -classpath <LIBS> -version
因此,因为默认行为是将 $CLASS
设置为 $COMMAND
,所以您基本上会得到它 运行ning:
java -version
这就是你得到的。