Flink CDC中Checkpoint 的清理策略一般是怎么设置的?发现跑一段时间后,占用空间还挺大大
Flink CDC中Checkpoint的清理策略可以通过以下两种方式进行设置:
# 设置checkpoint自动清理策略,这里设置为保留最近的3个checkpoint
state.checkpoints.num-retained = 3
需要注意的是,如果选择 RETAIN_ON_CANCELLATION 策略,需要手动清除该作业保留的 Checkpoint 状态信息,否则这些状态信息将永远保留在外部的持久化存储中。Flink任务取消时,支持两种清除策略:ExternalizedCheckpointCleanup.DELETE_ON_CANCELLATION和ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION。第一种表示所有checkpoint状态将被删除,包括元数据和实际的程序状态;第二种表示保留外部化的checkpoints,但不会删除任何状态信息。这两种策略的选择取决于你的具体需求和使用场景。
Flink CDC中Checkpoint的清理策略一般可以通过以下几种方式设置:
基于时间的清理策略:可以设置一个时间阈值,超过该阈值的Checkpoint会被清理掉。例如,可以设置保留最近7天的Checkpoint,过期的Checkpoint会被自动删除。
基于状态的清理策略:可以设置一个状态阈值,当Checkpoint的状态超过该阈值时,可以选择删除最早的Checkpoint。这种策略可以根据状态的大小来决定删除哪些Checkpoint。
手动清理策略:可以手动删除特定的Checkpoint,根据具体需求来进行清理操作。这种方式需要手动管理Checkpoint的清理过程。
在Flink CDC中,Checkpoint的清理策略通常有两种设置方式:DELETE_ON_CANCELLATION和RETAIN_ON_CANCELLATION。
DELETE_ON_CANCELLATION:仅当作业失败时,作业的 Checkpoint 才会被保留用于任务恢复。当作业取消时,Checkpoint 状态信息会被删除,因此取消任务后,不能从 Checkpoint 位置进行恢复任务。
RETAIN_ON_CANCELLATION:当作业手动取消时,将会保留作业的 Checkpoint 状态信息。注意,这种情况下,需要手动清除该作业保留的 Checkpoint 状态信息,否则这些状态信息将永远保留在外部的持久化存储中。
在实际生产环境中,如果状态超过100G,从 Savepoint 恢复任务时需要耗时10分钟以上,而 Checkpoint 可以在2分钟以内恢复完成,因此,对于状态超过100G的 Flink 任务,强烈建议使用 Checkpoint 恢复任务,而不是使用 Savepoint。
总的来说,Flink CDC中的Checkpoint清理策略需要根据具体的业务需求和场景来选择合适的配置,以达到最佳的性能和资源利用率。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。