2013-04-26 41 views
0

我試圖運行在Ubuntu 64位的最新版本Hadoop集羣像這樣(VM):確定問題的來源與JAVA_HOME環境變量

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 

我設置這個JAVA_HOME的/ usr/bin中/ Hadoop的這樣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 "[email protected]" 

爲什麼我會收到此消息? /usr/lib目錄/ JVM/JAVA-6-太陽/斌/ java的:沒有這樣的文件或目錄

回答

2

$JAVA值可能是設置在某處你的腳本,以點以前的Java 6的二進制文件。在這種情況下,它指向/usr/lib/jvm/java-6-sun/bin/java,這會在運行命令時導致shell失敗。將$JAVA變量設置爲指向Java 7二進制文件的正確位置,並且問題應該解決。