2017-08-26 8 views
1

ファイルシステムをチェックポイント状態のバックエンドとして使用しています。私たちの設定を以下に示します。Flink delete古いチェックポイントファイル

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); 
env.setStreamTimeCharacteristic(timeCharacteristic); 
env.getConfig().setAutoWatermarkInterval(Time.seconds(30).toMilliseconds()); 
env.enableCheckpointing(Time.seconds(30).toMilliseconds()); 
CheckpointConfig checkpointConfig = env.getCheckpointConfig(); 
checkpointConfig.setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE); 
env.setStateBackend(new FsStateBackend(props.getProperty("backendstate.path"))); 

これは、開発中に正常に動作しますが、できるだけ早く我々は生産への展開として、私たちは、チェックポイントファイルがすぐにディスク領域を食べていることが分かりました。私は、チェックポイントディレクトリのいずれかにLSを行なったし、古いCHK-Xのファイルを削除する方法があるかどう

chk-10 chk-104 chk-13 chk-18 chk-23 chk-28 chk-32 chk-37 chk-41 chk-46 chk-50 chk-55 chk-6 chk-64 chk-69 chk-73 chk-78 chk-82 chk-87 chk-91 chk-96 chk-100 ... hundreds of them 

が、私は疑問に思ってか、私たちはそれらを手動で削除する必要があることを見つけますか?

ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION

答えて

0

あなたはExternalizedCheckpointCleanupモードを使用すると、ジョブをキャンセルする場合、外部化のチェックポイントで何が起こるかを設定し、この

CheckpointConfig config = env.getCheckpointConfig(); 
config.enableExternalizedCheckpoints(ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION); 

を試みることができる仕事があるときに外部化チェックポイントを保持しますキャンセル。この場合は、キャンセル後にチェックポイント状態を手動でクリーンアップする必要があります。

ExternalizedCheckpointCleanup.DELETE_ON_CANCELLATION:ジョブがキャンセルされたときに外部化チェックポイントを削除します。チェックポイント状態は、ジョブが失敗した場合にのみ使用可能になります。配備中

1

は保持したいチェックポイントの最大数を「のconf/FLINK-conf.yaml」ファイルに次のプロパティを設定します。

state.checkpoints.num-retained 

理想的には、それがあるべきより1最後のチェックポイントが破損している場合にジョブを回復するのに役立ちます。

詳しくは、次を参照してください。Config Options

関連する問題