2014-04-24 41 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代码?