【发布时间】:2020-10-27 17:20:18
【问题描述】:
目前我使用 FsStateBackend 检查点状态。我正在使用间隔 10 秒,如下面的代码。但我看到使用检查点的传输桶的成本约为 20 美元/天,aws transfer s3 定价:0.005 美元/1000 个请求 =>(我使用的是 ~4000000 个请求/天 @@)。我有 7 个工作,其中:
- 6 个作业使用检查点间隔 = 10000 (ms)
- 1 个作业使用检查点间隔 = 1000 (ms)
并在 AWS EMR 上运行 flink。每个检查点的平均状态大小(8KB -> 30M)。检查点后面发生了什么?
// set up checkpoint
env.enableCheckpointing(1000 or 10000);
// advanced options:
// make sure 500 ms of progress happen between checkpoints
env.getCheckpointConfig().setMinPauseBetweenCheckpoints(500);
// checkpoints have to complete within one minute, or are discarded
// env.getCheckpointConfig().setCheckpointTimeout(60000);
// allow only one checkpoint to be in progress at the same time
env.getCheckpointConfig().setMaxConcurrentCheckpoints(1);
// enable externalized checkpoints which are retained after job cancellation
env.getCheckpointConfig().enableExternalizedCheckpoints(
CheckpointConfig.ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION);
// folder to checkpoint
StateBackend backend = new FsStateBackend(checkpointPath, true);
env.setStateBackend(backend);
【问题讨论】:
标签: apache-flink flink-streaming