Beim Einreichen eines Spark-Streaming-Programms mit Spark-Submit (YARN-Modus) es pollt weiter den Status und beendet nie
Gibt es eine Option in spark-submit, um nach der Einreichung zu beenden?
=== warum das mich beunruhigt ===
Das Streaming-Programm läuft für immer und ich brauche keine Statusaktualisierung
Ich kann Strg + C drücken, um es zu stoppen, wenn ich es manuell starte aber ich habe viele Streaming-Kontext zu starten und ich muss sie mit Skript starten
Ich kann das Spark-Submit-Programm in den Hintergrund stellen, aber nach vielen Hintergrund Java-Prozess erstellt, der Benutzer entspricht, wird nicht in der Lage, einen anderen Java-Prozess zu laufen, weil JVM GC-Thread
erstellen kannInteressant. Ich habe nie über dieses Thema nachgedacht. Nicht sicher, es gibt eine saubere Möglichkeit, dies zu tun, aber ich einfach den Übermittlungsvorgang auf der Maschine und der Garn Job läuft weiter, bis Sie es speziell stoppen. Sie können also ein Skript erstellen, das die Funke-Submit-Funktion ausführt und sie dann beendet. Wenn Sie wirklich aufhören wollen, verwenden Sie Garn -kill. Schmutzig aber funktioniert.
Ich weiß, dass dies eine alte Frage ist, aber es gibt eine Möglichkeit, dies jetzt zu tun, indem Sie --conf spark.yarn.submit.waitAppCompletion=false
setzen, wenn Sie spark-submit
verwenden. Damit wird der Client beendet, nachdem die Anwendung erfolgreich abgeschickt wurde.
Steuert im YARN-Cluster-Modus, ob der Client bis zum Beenden warten soll Die Anwendung wird abgeschlossen. Wenn der Wert auf "true" gesetzt ist, wird der Clientprozess dies tun Bleib am Leben und melde den Status der Anwendung. Sonst der Kunde Der Prozess wird nach der Übermittlung beendet.
Sie müssen möglicherweise auch --deploy-mode
auf cluster
Im Cluster-Modus wird der Spark-Treiber in einem Anwendungsmaster ausgeführt Prozess, der von YARN auf dem Cluster verwaltet wird, und der Client kann gehen nachdem Sie die Anwendung gestartet haben.
Mehr unter Ссылка
Tags und Links apache-spark yarn