2017-04-21 5 views
0

Ich habe Apache Funke auf Hadoop hdfs unter CentOS 7, und ich habe alles installiert (einschließlich JAVA, Hadoop, Spark) erfolgreich und Funke Job ohne Problem über die Konsole laufen. Und jetzt will ich Funke Jobs in Java-Servlet in tomcat aufzurufen, und ich verwende den folgenden Code Spark-AnwendungJava Home Fehler in SparkLaunch

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(); 

zu starten und ich bekam die folgende Fehlerbeschreibung in FehlerVar()

/usr /spark/spark-2.1.0-bin-without-hadoop/bin/spark-class: Zeile 71:/usr/lib/jvm/jre/bin/java: Keine solche Datei oder das Verzeichnis

Wie angegeben Im Code wird jdk in einem anderen Verzeichnis installiert, das auch in/etc/profile korrekt konfiguriert ist, also alles Es ist gut, wenn ich dies in der Konsole ausfühle. Ich weiß nicht, warum Spark versucht, jdk in/usr/lib/jvm/jre zu finden, kann mir jemand Informationen geben? Vielen Dank.

Antwort

0

Fügen Sie JAVA_HOME Pfadvariable zum Server hinzu und versuchen Sie es. Verwenden Sie dazu die folgenden Befehle.

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