2017-03-29 2 views
1

Wir führen einen Batch-Prozess mit Funken und mit spark-submit unsere Arbeit mit Optionen vorlegenWie verhindert man, dass der Funke zweimal gesendet wird, wenn im Cluster-Modus ein Fehler auftritt?

--deploy-mode cluster \ 
--master yarn-cluster \ 

Ich nehme im Grunde eine CSV-Dateien und einige Verarbeitung auf diesen Dateien zu tun und ein Parkett Dateien daraus erstellen. Wir führen mehrere Dateien in demselben Spark Submit-Befehl mit einer Konfigurationsdatei aus. Nun sagen wir, wir haben 10 Dateien, die wir verarbeiten, und wenn der Prozess fehlschlägt, lässt die Datei 6 Spark versuchen, den Prozess erneut auszuführen und alle Dateien bis Datei 6 zu verarbeiten und doppelte Datensätze für alle diese 5 Dateien zu schreiben Versagen. Wir erstellen Parquet Dateien und daher haben wir keine Kontrolle darüber, wie Spark diese Dateien benennt, aber es erzeugt immer einen eindeutigen Namen.

Gibt es eine Möglichkeit, die Spark-Eigenschaft zu ändern, um einen fehlgeschlagenen Prozess nicht erneut auszuführen?

Antwort

0

Das Anwesen spark.yarn.maxAppAttempts in meinem Fall habe ich seinen Wert auf 1 wie unten in meinem Funken einreichen Befehl:

--conf "spark.yarn.maxAppAttempts=1"

Verwandte Themen