Wie verhindere ich, dass ein spark-streaming-job?
Ich habe eine Spark-Streaming-Auftrag ausgeführt wurde, kontinuierlich. Wie verhindere ich, dass der Auftrag ordnungsgemäß? Ich habe gelesen, die üblichen Empfehlungen, dort ein shutdown-hook im job-überwachung und sendet ein SIGTERM an den job.
sys.ShutdownHookThread {
logger.info("Gracefully stopping Application...")
ssc.stop(stopSparkContext = true, stopGracefully = true)
logger.info("Application stopped gracefully")
}
Scheint es zu funktionieren, aber nicht Aussehen wie der sauberste Weg zu stoppen Sie den job. Bin ich hier etwas fehlt?
Aus code Perspektive kann es Sinn machen, aber wie verwenden Sie diese in einer cluster-Umgebung? Wenn wir beginnen, einen spark-streaming-job (wir verteilen die Aufträge auf allen Knoten im cluster) wir haben zu verfolgen, die PID für den job und die Knoten, auf dem es ausgeführt wurde. Schließlich, wenn wir haben, um den Prozess zu stoppen, müssen wir verfolgen, auf welchem Knoten der Auftrag wurde ausgeführt und die PID für, die. Ich habe nur gehofft, dass es eine einfachere Möglichkeit der job-control für streaming-jobs.
- Was nicht sauber Aussehen zu Ihnen? Ich denke, das ist richtig.
- Ich fügte einige weitere details zu der Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie aufhören, Ihre streaming-context im cluster-Modus, indem Sie den folgenden Befehl ausführen, ohne das senden eines SIGTERM. Dies wird stop-die streaming-Kontext, ohne Sie benötigen, um explizit stoppen Sie es mit einem Gewinde Haken.
$SPARK_HOME_DIR/bin/spark-submit --master $MASTER_REST_URL --kill $DRIVER_ID
-$MASTER_REST_URL ist die rest-url des spark-Fahrer, dh so etwas wie Funken://localhost:6066
-$DRIVER_ID ist so etwas wie Treiber-20150915145601-0000
Wenn Sie wollen spark zu stoppen Ihre app ordnungsgemäß, können Sie versuchen Sie die folgenden system-Eigenschaft, wenn Sie Ihre Funke-app ist zunächst vorgelegt (siehe http://spark.apache.org/docs/latest/submitting-applications.html auf Einstellung spark configuration properties).
spark.streaming.stopGracefullyOnShutdown=true
Dieses ist offiziell nicht dokumentiert, und ich sammelte diese aus der Betrachtung der 1.4-source-code. Dieses flag wird geehrt im standalone-Modus. Ich habe es noch nicht getestet im gruppierten Modus noch.
Arbeite ich mit spark 1.4.*
Ist es nun amtlich,schauen Sie bitte in original-apache-Dokumentation hier-
http://spark.apache.org/docs/latest/configuration.html#spark-streaming
Wenn alles, was Sie brauchen, ist nur stop running-streaming-Anwendung, dann die einfachste Möglichkeit ist über Spark admin UI (Sie können Sie finden die URL in die startup-logs von Spark master).
Gibt es einen Abschnitt in der Benutzeroberfläche, die streaming-Anwendungen, und es gibt winzige
(kill)
url-buttons neben jedem Anwendungs-ID.(kill)
Schaltflächen neben jedem Stadium (auf einem einzelnen Empfänger), aber wenn ich das töten einer von Ihnen, die andere ist schnell gespawnt