Ich verwende AWS EMR für unser Spark-Streaming. Ich füge einen Schritt in EMR hinzu, der Daten vom Kinesis-Strom liest. Was ich brauche, ist ein Ansatz, um diesen Schritt zu stoppen und einen neuen hinzuzufügen.So stoppen Sie einen lang andauernden Spark-Streaming-Schritt in AWS EMR
Im Moment spawn ich einen Thread aus dem Spark-Treiber und höre auf eine SQS-Warteschlange für eine Nachricht und beim Empfang einer Nachricht, ich rufe sparkContext.stop()
. Ich verwende Chef für unsere Bereitstellungsautomatisierung. Wenn also ein neues Artefakt vorliegt, wird eine Nachricht in SQS eingegeben, EMR liest sie und stoppt den Schritt. Chef fügt dann einen neuen Schritt mit EMR API hinzu.
Meine Frage ist, ist dies der richtige Weg, um einen lang laufenden Streaming-Job in EMR zu stoppen? Wie wird dies gehandhabt, wenn es in einem eigenständigen Cluster anstelle von EMR eingesetzt wurde?