2016-09-13 8 views
3

Apache Flink + RabbitMQスタックを使用しています。手動でセーブポイントをトリガーしてジョブをリストアする機会については知っていますが、問題は、チェックポイントが成功した後にFlinkがメッセージを認識し、セーブポイントとリストア状態を作成したい場合、最後に成功したセーブポイントと最後に成功したチェックポイント。チェックポイントからジョブを復元する方法はありますか?これは、再生不能なデータソース(rabbitmqなど)の場合にデータを失うという問題を解決します。 Btw、すべてのオーバーヘッドを持つチェックポイントがあれば、なぜユーザーにそれらを使用させないのですか?チェックポイントからApache Flinkジョブを復元する

答えて

4

概念的には、セーブポイントは、チェックポイントとメタデータのビットよりも他には何もありません。どちらの場合も(SavepointとCheckpoint)、Flinkはすべての演算子、ソース、およびシンクの状態の一貫したチェックポイントを作成します。

チェックポイントは、障害回復のための内部機構であると考えられています。ただし、チェックポイントはconfigured to be externalized checkpointsです。外部化されたチェックポイントは、ジョブが終了したときに自動的にクリーンアップされず、プログラムを手動で再起動するために使用できます。

RabbitMQソースの問題点は、Flinkのチェックポイントセマンティクスに違反するということです。これは、リセットできないチェックポイントを使って外部システムに何らかの状態をプッシュするためです。

セーブポイントをトリガーし、その後すぐにジョブをシャットダウンするメカニズムを使用すると、問題を解決できますか?これは、セーブポイントが取られた後にチェックポイントがトリガーされるのを防ぎます。

+0

はい、それは私の問題を解決するだろう。セーブポイント後にシャットダウンジョブを実行する方法はありますか? – user3237732

+0

いいえ、これは現時点では不可能ですが、現時点で進行中の取り組みであるジョブの再スケーリングを可能にするために追加されます。 –

関連する問題