我正在尝试在最新版本的 ubuntu 64 位 (vm) 中运行这样的 hadoop 集群:
hadoop launch-cluster MyCluster 1
这是我得到的输出:
/usr/bin/hadoop: line 320: /usr/lib/jvm/java-6-sun/bin/java: No such file or directory
/usr/bin/hadoop: line 390: /usr/lib/jvm/java-6-sun/bin/java: No such file or directory
我在 /usr/bin/hadoop 中设置这个 JAVA_HOME export JAVA_HOME=$(readlink -f/usr/bin/java | sed "s:bin/java::")
当我检查 JAVA_HOME 的值时,我得到 /usr/lib/jvm/java-7-openjdk-amd64/jre/
文件的第 320 行是:
JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} -Xmx32m ${HADOOP_JAVA_PLATFORM_OPTS} org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"`
和第 390 行:
exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"
为什么我会收到这条消息? /usr/lib/jvm/java-6-sun/bin/java: 没有那个文件或目录
最佳答案
$JAVA
的值可能在脚本中的某处设置为指向较旧的 Java 6 二进制文件。在这种情况下,它指向 /usr/lib/jvm/java-6-sun/bin/java
,这会导致 shell 在运行命令时失败。将 $JAVA
变量设置为指向 Java 7 二进制文件的正确位置,问题应该得到解决。
关于linux - 使用 java_home 环境变量识别问题来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16246638/