SparkLaunch中的Java主页错误

时间:2017-04-21 04:44:41

标签: java hadoop apache-spark

我在CentOS 7下运行hadoop hdfs上的apache spark,并且我已成功安装了所有内容(包括JAVA,Hadoop,Spark)并通过控制台运行spark job没有任何问题。现在我想在tomcat中调用java servlet中的spark作业,并使用以下代码启动Spark应用程序

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:line 71:/ usr / lib / jvm / jre / bin / java:没有这样的文件或目录

如代码中所示,jdk安装在不同的目录中,该目录也在/ etc / profile中正确配置,因此如果我在控制台中执行此操作,一切都很顺利。我不知道为什么火花试图在/ usr / lib / jvm / jre找到jdk,有人能给我一些信息吗?非常感谢你。

1 个答案:

答案 0 :(得分:0)

JAVA_HOME路径变量添加到服务器并尝试一下。使用以下命令执行此操作。

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