Flink网上生产级要求,checkpoint需要手动写脚本清理,特别是增量的rocksdb, 大家一般是如何清理checkpoint?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
一般来说,清理Flink的checkpoint可以通过编写脚本来实现。
可以使用Flink的命令行工具,如flink list checkpoints,来查看当前存在的checkpoint,然后根据需要清理掉过期的checkpoint。
对于您说的增量的rocksdb,可以使用RocksDB的清理工具,比如RocksDB Cleaner,来清理过期的checkpoint。
RocksDB Cleaner可以根据指定的时间戳来清理过期的checkpoint,从而确保系统的性能和可用性。
Flink中对ck的清理策略分为两种,DELETE_ON_CANCELLATION和RETAIN_ON_CANCELLATION:
DELETE_ON_CANCELLATION在仅当作业失败时,作业的 ck才会被保留用于任务恢复。当作业取消时,ck状态信息会被删除,因此取消任务后,不能从 ck位置进行恢复任务。
RETAIN_ON_CANCELLATION在当作业手动取消时,将会保留作业的 ck状态信息。注意,这种情况下,需要手动清除该作业保留的 ck 状态信息,否则这些状态信息将永远保留在外部的持久化存储中。
需要解析最近一次ck目录的元数据文件就可以知道当前的任务依赖哪些sstable文件,千万不要把这些还依赖sstable文件的ck目录删除,最后把其余不依赖的sstable所在的ck目录删除就好了。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。