我正在考虑使用RocksDB作为flink作业的状态后端,它的状态大小高达1TB。
我的环境
- 检查点目录: HDFS
- Flink 作业提交:单纱(纱簇上的单纱模式)
如果作业失败,重试次数超过最大重试计数,作业完全终止(或取消作业),我认为检查点和rocksdb文件将被删除(因为我将作业部署为per-job-mode,任务管理器也将终止)。
在这里,我想我失去了所有的状态,没有办法恢复状态,但我希望使用RocksDB将有助于恢复状态,因为它是一个基于磁盘的状态后端。如果没有,使用RocksDB状态后端的优势是什么?
在这种情况下,在取消时保留检查点并从检查点(或保存点)重新启动作业是否有帮助?
谢谢
1条答案
按热度按时间uqjltbpv1#
我建议在将Flink应用程序投入生产之前查看https://nightlies.apache.org/flink/flink-docs-master/docs/ops/production_ready/以了解需要考虑的步骤,选择正确的状态后端就是其中之一。
对于状态恢复来说,重要的是你要启用快照机制。它可以是检查点或保存点,你可以使用配置好的状态后端(比如RocksDB)。如果配置正确,你的状态会被快照到一个持久的存储器中,这样你就可以在发生故障的情况下从中恢复。RocksDB通常用于大的状态,它不能再容纳到内存中。