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

yebdmbv4  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(351)

我执行了以下命令: hadoop -version 在hadoop版本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的版本为什么?

sdnqo3pr

sdnqo3pr1#

看起来像是 hadoop 脚本 1.2.x 与较新版本相比,它的检查次数要少得多,目前(2016年)已经有3年的历史了。你可以在这里看到它的来源。
1.2.x 如果您键入脚本 hadoop -version 剧本将进入决赛 else 语句,它计算出要运行和设置的类 $CLASS$COMMAND (第338行)而不是类。
您可以在第434行看到它将运行什么: 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$COMMAND 你基本上是以它的运行结束的: java -version 这就是你得到的。

相关问题