Ich habe ein Problem mit der Ausführung von Spark-Anwendungen im Standalone-Cluster. (Ich benutze funken 1.1.0 Version). Ich führe Masterserver erfolgreich durch Befehl:
%Vor%Dann führe ich einen Arbeiter per Befehl aus:
%Vor%Auf der Weboberfläche des Masters:
%Vor%Ich sehe, dass Meister und Arbeiter rennen.
Dann starte ich meine Anwendung von Eclipse Luna. Ich verbinde mich erfolgreich mit dem Befehl
mit dem Cluster %Vor%Und nach dieser Anwendung funktioniert, aber wenn Programm folgenden Code erreichen:
%Vor%Es stürzt mit folgender Fehlermeldung ab:
%Vor%In der Shell habe ich gefunden:
%Vor%In Protokollen:
%Vor%Ich habe viel gegoogelt, aber ich habe keine Ahnung, was los ist ... Ich fand eine ähnliche Diskussion hier:
Aber es löst mein Problem nicht ...
Jemand weiß was falsch ist?
Danke.
Es wurde eine Möglichkeit gefunden, es mit IDE / Maven auszuführen
%Vor%
SparkConf conf = neu SparkConf (). SetAppName ("appName") .setMaster ("Funken: // machineName: 7077") .setJars (neu String [] {"target / appName-1.0-SNAPSHOT-driver.jar"});
Führen Sie mvn clean aus, um die Jar-Datei zu erstellen. Es wird in Ihrem Zielordner erstellt.
Führen Sie Ihre IDE aus oder verwenden Sie den Befehl maven:
mvn exec: java -Dexec.mainClass="Klassenname"
Dies erfordert keine Funkenabgabe. Denken Sie daran, die Datei vor dem Ausführen zu packen
Wenn Sie den Jar-Pfad nicht fest codieren möchten, können Sie dies tun:
SparkConf conf = new SparkConf () .setAppName ("appName") .setMaster ("funken: // maschinenName: 7077") .setJars (JavaSparkContext.jarOfClass (this.getClass ()));
java -jar target / application-1.0-SNAPSHOT-driver.jar
Damit wird das Glas aus dem Glas genommen, in das die Klasse geladen wurde.
Zum Vorteil anderer, die auf dieses Problem stoßen:
Ich hatte ein identisches Problem, weil die Zündkerze und die Zündkerze nicht übereinstimmen. Spark war 1.3.1 und der Connector war 1.3.0, eine identische Fehlermeldung erschien:
%Vor%Die Aktualisierung der Abhängigkeit in SBT löste das Problem.
Tags und Links apache-spark