【发布时间】:2021-07-14 22:03:28
【问题描述】:
我正在使用带有 RocksDBStateBackend 的 Apache Flink,并且在使用保存点重新启动作业时遇到了一些麻烦。
显然,状态再次准备好需要一些时间,但即使状态尚未准备好,来自 Kafka 的 DataStreams 似乎正在四处移动数据,这会导致一些无效的缺失,因为状态尚未准备好但是对于我的KeyedProcessFunction。
这是预期的行为吗?我在文档中找不到任何内容,显然也没有相关配置。
对我们来说,理想的状态是在移动任何数据之前完全准备好查询状态。
例如,这表明在部署期间,estimate_num_keys 指标正在缓慢增加。
但是,如果我们查看操作员的应用程序计数器,他们会在那个“热身阶段”工作。
我在这里找到了一些讨论 Apache flink: Lazy load from save point for RocksDB backend,建议使用外部检查点。
我会调查一下,但目前,我们的状态不是太大(~150 GB),所以我不确定这是否是唯一的尝试途径。
【问题讨论】:
-
Externalized checkpoints 改进了这种行为。不确定是否可以使用 Savepoints 来实现。
标签: apache-flink flink-streaming