Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未能构建ApacheSpark:“;“无法运行程序”;javac";:错误=20,不是目录;_Java_Maven_Build_Apache Spark_Sbt - Fatal编程技术网

未能构建ApacheSpark:“;“无法运行程序”;javac";:错误=20,不是目录;

未能构建ApacheSpark:“;“无法运行程序”;javac";:错误=20,不是目录;,java,maven,build,apache-spark,sbt,Java,Maven,Build,Apache Spark,Sbt,我正在尝试在Linux机器上安装Spark。我从下载并尝试使用以下命令构建它: root# build/mvn -e -X -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -Phive -Phive-thriftserver -DskipTests clean package 构建似乎一开始就很好: Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T07:57:

我正在尝试在Linux机器上安装Spark。我从下载并尝试使用以下命令构建它:

root# build/mvn -e -X -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -Phive -Phive-thriftserver -DskipTests clean package
构建似乎一开始就很好:

Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T07:57:37-04:00)
Maven home: /some_path_here/spark-1.5.0/build/apache-maven-3.3.3
Java version: 1.7.0_05, vendor: Oracle Corporation
Java home: /usr/local/mytools-tools/java/jdk64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-573.1.1.el6.x86_64", arch: "amd64", family: "unix"
[DEBUG] Created new class realm maven.api
[DEBUG] Importing foreign packages into class realm maven.api
但它失败了:

[debug] Recompiling all 8 sources: invalidated sources (8) exceeded 50.0% of all sources
[info] Compiling 8 Java sources to /some_path_here/spark-1.5.0/launcher/target/scala-2.10/classes...
[debug] Attempting to call javac directly...
[debug] com.sun.tools.javac.Main not found with appropriate method signature; forking javac instead
[debug] Forking javac: javac @/tmp/sbt_6c9436e4/argfile
[error] Cannot run program "javac": error=20, Not a directory
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Spark Project Parent POM ........................... SUCCESS [  2.056 s]
[INFO] Spark Project Launcher ............................. FAILURE [  4.832 s]
等等

我很确定我已经适当地定义了
JAVA\u HOME
PATH


此框安装了多个版本的Java,这可能与此问题有关。

我通过关闭ZINK解决了此问题,根据对相关问题的回答:

Spark builds的一个“怪癖”是,如果确定需要,它可以下载自己的Maven版本

当您运行
/build/mvn
clean package时,您不是直接运行Maven,而是运行一个Spark专有脚本。脚本要做的第一件事是检查您的
mvn-version
是否足够新,适合项目确定它需要的版本(在pom.xml文件中设置)

这一点很重要,因为如果您运行的是旧版本的maven,Spark可能会下载一个附加的maven版本,然后安装并使用它

一些关键的事情:

  • 当您运行
    /build/mvn
    clean package时,检查它使用的是哪个版本的maven
  • 当maven运行时,它自己进行遍历,以确定使用了哪个
    JAVA\u HOME
    。在尝试运行spark构建之前,请检查
    JAVA\u HOME
    是否设置为变量
  • 检查
    JAVA_HOME
    版本是否是完整的jdk,而不仅仅是jre,将Maven更新为最新版本(或者检查它是否至少与根目录中pom.xml中设置的版本相同)