2016-08-05 5 views

答えて

1

アプリケーションコードのアップグレードをお探しの場合は、spark-streamingのドキュメントを参照してください。新しいアプリケーション・コードをアップグレードする必要が ランニングスパークストリーミングアプリケーション場合はアプリケーションコードのアップグレード

、2つの の可能なメカニズムがあります。

アップグレードされたSpark Streamingアプリケーションは、既存のアプリケーションと並行して起動され、 で実行されます。新しいもの(古いものと同じデータを で受信)がウォームアップされ、素数の準備が整ったら、古いものを取り除くことができます。これは、 の2つの宛先(以前のアプリケーションとアップグレードされたアプリケーション)へのデータ送信をサポートするデータソースに対して実行できます。受信したデータを確実に

既存のアプリケーションが正常にシャットダウンされるが( グレースフルシャットダウンオプションの StreamingContext.stop(...)またはJavaStreamingContext.stop(...)を参照)を完全にシャットダウンする前に処理 です。アップグレードされたアプリケーション を起動することができます。これにより、先のアプリケーションが終了したのと同じポイントから処理が開始されます。 これは、元のアプリケーションが ダウンし、アップグレードされたアプリケーションがまだ起動していない間にデータをバッファリングする必要があるため、ソースサイドのバッファリング(Kafka、 Flumeなど)をサポートする入力ソース でのみ実行できます。また、アップグレード前のコードのチェックポイント情報を より早く再起動することはできません。 チェックポイント情報には、本質的にシリアル化された Scala/Java/Pythonオブジェクトが含まれており、新しいクラス でオブジェクトを逆シリアル化しようとするとエラーが発生する可能性があります。この場合、別のチェックポイントディレクトリを使用して アップグレードしたアプリケーションを起動するか、前のチェックポイントディレクトリ を削除してください。

https://spark.apache.org/docs/latest/streaming-programming-guide.html

関連する問題