2017-04-21 66 views
0

我在CentOS 7下运行hadoop hdfs上的apache spark,并且已经成功安装了所有东西(包括JAVA,Hadoop,Spark)并且没有任何问题地通过控制台运行spark工作。现在我想调用火花工作在Tomcat中的Java Servlet,我用下面的代码来启动星火应用SparkLaunch中的Java home错误

SparkLauncher spark = new SparkLauncher(); 
spark.setAppResource("/usr/spark/spark-2.1.0-bin-without-hadoop/examples/jars/org.jar"); 
spark.setMainClass("org.apache.spark.examples.mllib.CommonML"); 
spark.setMaster("spark://master:7077"); 
spark.setAppName("CommonDo"); 
spark.setSparkHome("/usr/spark/spark-2.1.0-bin-without-hadoop"); 
spark.setJavaHome("/usr/java/jdk1.8.0_121"); 
spark.addAppArgs("predict MTHFR677 25.33 69.33 abcdefg"); 

Process process = spark.launch(); 

我在ErrorStream()

在/ usr有以下错误的说明/spark/spark-2.1.0-bin-without-hadoop/bin/spark-class:线71:在/ usr/lib中/ JVM/JRE/bin中/ JAVA:没有这样的文件或目录

如所指出的在代码中,jdk安装在不同的目录下,这也是在/ etc/profile中正确配置的,所以每一个都是如此如果我在控制台中执行此操作,那么很好。我不知道为什么spark试图在/ usr/lib/jvm/jre中找到jdk,任何人都可以给我一些信息?非常感谢你。

回答

0

JAVA_HOME路径变量添加到服务器并试一试。使用以下命令来做到这一点。

export JAVA_HOME=/usr/java/jdk1.8.0_121 
export PATH=$JAVA_HOME/bin:$PATH