2014-04-24 64 views
1

運行java當我在集羣中運行的星火計劃項目,我得到這個錯誤日誌:不能在火花工人

java.io.IOException: Cannot run program "java" (in directory "/cloud/packages/spark-0.9.0-incubating-bin-hadoop1/work/app-20140424114752-0000/0"): java.io.IOException: error=2, No such file or directory 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460) 
    at org.apache.spark.deploy.worker.ExecutorRunner.fetchAndRunExecutor(ExecutorRunner.scala:129) 
    at org.apache.spark.deploy.worker.ExecutorRunner$$anon$1.run(ExecutorRunner.scala:59) 
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory 
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:148) 
    at java.lang.ProcessImpl.start(ProcessImpl.java:65) 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:453) 
    ... 2 more 

我已經設置JAVA_HOME(/cloud/packages/jdk1.6.0_38)和SPARK_HOME(/cloud/packages/spark-0.9.0-incubating-bin-hadoop1)。

這個異常的原因是什麼?如何修復它?

+0

你可以查看java版本。 java -version –

回答

2

我在Ubuntu 12.04上遇到同樣的問題,並通過在/etc/environment中加入JAVA_HOME來修復它。

+0

謝謝。其實,我失去了解決這個問題的機會。因爲機器重新安裝了一些致命的崩潰。 – sezina

+0

解決了我的問題。謝謝! – Denis

0

檢查您的Java版本。

java -version 

如果java安裝正確,它會顯示Java版本。

如果沒有安裝Java(烏本杜)

sudo add-apt-repository ppa:webupd8team/java 
sudo apt-get update 
sudo apt-get install oracle-java7-installer 

更新

請檢查echo $JAVA_HOME

,否則設置的Java家裏.bashrc

export JAVA_HOME=/cloud/packages/jdk1.6.0_38 
export PATH=$PATH:$JAVA_HOME/bin 
+0

java -version結果: Java版本「1.6.0_38」 Java™SE運行時環境(內部版本1.6.0_38-b05) Java HotSpot™64位服務器虛擬機(版本20.13 -b02,混合模式) – sezina

+0

java在我的服務器上。 – sezina

+0

我更新了我的答案 –

0

在shell中,你習慣能夠運行java並讓殼諮詢PATH去找到它在哪裏。這裏你直接在操作系統中調用一個命令。正如它所說,它找不到java。您可以使用像bash這樣的shell來爲您調用該命令,或者提供java的完整路徑。

爲什麼?爲什麼不在工作者內部運行Java代碼?