スパークストリーミングにはAWS EMRを使用します。私はKinesisストリームからデータを読み込むEMRのステップを追加します。私が必要とするのは、このステップを止めて新しいステップを追加するアプローチです。AWS EMRの長期スパークストリーミングステップを停止する方法
今私はSparkドライバからスレッドを生成し、メッセージのSQSキューをリッスンし、メッセージを受信するとsparkContext.stop()
と呼びます。私はシェフを展開自動化に使用しています。したがって、新しいアーティファクトがある場合、メッセージはSQSに入れられ、EMRはそれを読み取り、ステップを停止します。その後、シェフはEMR APIで新たなステップを追加します。
私の質問は、これはEMRで長時間実行されるストリーミングジョブを停止する正しい方法ですか? EMRの代わりにスタンドアロンのクラスタにどのように展開されたのですか?