【问题标题】:Flink: Queries regarding flink checkpoint and savepointFlink:关于 flink 检查点和保存点的查询
【发布时间】:2020-02-28 04:48:23
【问题描述】:
以下是我对 Flink 的疑问。
- 我们可以将检查点和保存点存储到 RockDB 等外部数据结构中吗?或者它只是我们可以存储在 RockDB 等中的状态吗?
- 状态后端会影响检查点吗?如果是,通过什么方式?
- 什么是 StateProcessor API?它是否与我们存储的保存点和检查点直接相关?什么
StateProcessor API 是否提供了普通保存点无法提供的额外好处?
对于 3 个问题,请尽可能描述性地回答。我对学习 StateProcessor API 很感兴趣,但我想深入了解它的应用,以及它在哪些场景中不可或缺。
【问题讨论】:
标签:
apache-flink
flink-streaming
【解决方案1】:
Checkpoints 和 savepoints 只能写入满足 Flink 的filesystem abstraction 要求的存储。您想使用具有持久性和冗余性的东西,例如 S3 或 HDFS。 RocksDB 不支持作为检查点或保存点的数据存储。
状态后端涉及检查点,检查点以特定于状态后端的格式编写。基于堆和基于 RocksDB 的状态后端在检查点方面最显着的区别是只有 RocksDB 状态后端支持增量检查点。
状态处理器 API 允许您编写可以读写保存点(和外部化检查点)的应用程序。这对于检查应用程序的状态以进行分析或调试、执行状态迁移以及引导新应用程序的状态很有用,举几个例子。