org.apache.spark.SparkException: Job aufgrund eines Stage-Fehlers abgebrochen: Task aus der Anwendung

8

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.

    
dimson 12.11.2014, 17:00
quelle

2 Antworten

2

Es wurde eine Möglichkeit gefunden, es mit IDE / Maven auszuführen

  1. Erzeuge ein fettes Glas (eines, das alle Abhängigkeiten enthält). Benutze das Schatten-Plugin dafür. Beispiel pom:
%Vor%
  1. Nun müssen wir die kompilierte JAR-Datei an den Cluster senden. Geben Sie dazu die JAR-Datei in der Spark-Konfiguration wie folgt an:
  

SparkConf conf = neu   SparkConf (). SetAppName ("appName") .setMaster ("Funken: // machineName: 7077") .setJars (neu   String [] {"target / appName-1.0-SNAPSHOT-driver.jar"});

  1. Führen Sie mvn clean aus, um die Jar-Datei zu erstellen. Es wird in Ihrem Zielordner erstellt.

  2. 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:

  1. Schreiben Sie in der Konfiguration:
  

SparkConf conf = new SparkConf ()                               .setAppName ("appName")                               .setMaster ("funken: // maschinenName: 7077")                               .setJars (JavaSparkContext.jarOfClass (this.getClass ()));

  1. Erstellen Sie das Fettglas (wie oben) und führen Sie es mit maven aus, nachdem Sie den Paketbefehl:
  2. ausgeführt haben
  

java -jar target / application-1.0-SNAPSHOT-driver.jar

Damit wird das Glas aus dem Glas genommen, in das die Klasse geladen wurde.

    
Aditya Pawade 12.11.2014, 21:36
quelle
4

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.

    
Lyuben Todorov 19.04.2015 00:38
quelle

Tags und Links