2016-06-10 9 views
2

Ich entwickle eine Spark-Streaming-Anwendung, die Daten von Kafka grundsätzlich liest und speichert es regelmäßig in HDFS.Laufen Funken für immer auf Produktion

Ich betreibe pyspark auf YARN.

Meine Frage ist mehr für Produktionszwecke. Gerade jetzt, ich betreibe meine Anwendung wie folgt aus:

spark-submit stream.py

Stellen Sie sich vor Sie diesen Funken-Streaming-Anwendung liefern werden (in Python) an einen Client, was würden Sie tun, um es am Laufen zu halten für immer? Du würdest nicht einfach diese Datei geben und sagen "Führe das auf dem Terminal aus". Es ist zu unprofessionell.

Was ich tun möchte, ist, den Job an den Cluster (oder Prozessoren in lokalen) zu übermitteln und nie Protokolle auf der Konsole zu sehen, oder eine Lösung wie linux screen zu verwenden, um es im Hintergrund auszuführen (weil es scheint zu unprofessionell).

Was ist der professionellste und effizienteste Weg, um einen Cluster permanent mit Spark-Streaming zu versorgen?

Ich hoffe, ich war eindeutig. Vielen Dank!

+0

ist Ihr Problem für immer laufen auch nach dem Schließen des Terminals? Hast du einen Blick auf Spark-Submit - Deploy-Modus "Cluster" – Knight71

+0

@ Knight71, ja, ich habe. Aber das löst mein Problem nicht. Meine Frage ist, auf der Produktion, würden Sie ein Terminal ständig geöffnet haben, damit Sie den Funkenjob nicht töten? Ich bin mir sicher, LinkedIn oder ein anderes Unternehmen, das die Produktion von Spark-Streams nutzt, hat eine sehr gute Bereitstellungsart für die Produktionssite und ich war neugierig darauf. – HackCode

+0

Sie können das Terminal nach der Bereitstellung im Clustermodus schließen. Das Streaming wird ohne Probleme ausgeführt. – Knight71

Antwort

0

Sie könnten den funke-jobserver verwenden, der eine Rest-Schnittstelle für das Hochladen Ihres Jars und das Ausführen des joints bereitstellt. Sie finden die Dokumentation hier spark-jobserver.