hadoop -version给我错误的结果为什么? Hadoop 1.2.1

时间:2016-07-06 06:38:43

标签: hadoop hadoop2

我执行了以下命令: hadoop -version on hadoop version 1.2.1

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 [没有连字符] 但是没有得到错误我得到了JDK的版本为什么?

1 个答案:

答案 0 :(得分:2)

看起来hadoop的{​​{1}}脚本比最新版本的检查要少得多,此时(2016年)约为3年。您可以看到它的来源here

1.2.x脚本中,如果您键入1.2.x,脚本将点击最终的hadoop -version语句,在该语句中输出要运行的类,并将else设置为{{1} }(第338行)而不是类。

你可以看到它将在第434行运行:

$CLASS

因此,如果您键入$COMMAND,它将会运行(删除了类路径的东西以保持简短):

exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"

如果您输入hadoop version,则会获得:

java -Dproc_version -Xmx1000m -classpath <LIBS> org.apache.hadoop.util.VersionInfo

因为默认行为是将hadoop -version设置为java -Dproc_-version -Xmx1000m -classpath <LIBS> -version,您基本上最终会运行它:

$CLASS

这就是你得到的。