如何在 apache flink 检查点中测试 RocksDB 压缩

问题描述 投票:0回答:1

我有一个 Flink 管道,运行着一些过滤器、映射、聚合器和 Windows 运算符。启用增量检查点的 RocksDB 后端。

我的检查点数据量正在逐渐增长。据我所知,一旦压缩开始,检查点的大小将逐渐减小。我想测试并证明这一点。

为此,我在我的 flink conf yaml 中配置了以下值。

rocksdb.compaction.level.max-size-level-base : 4096
rocksdb.compaction.level.target-file-size-base  : 2048
rocksdb.writebuffer.size : 2048

虽然我在任务管理器日志中看到这些属性已被识别。即使在 4MB 之后,检查点大小也没有减少。我的初始检查点大小约为 400KB。

我在这里缺少什么吗?我需要启用任何其他属性吗?

我无法确定 RocksDB 压缩是否发生。我想启用rocks DB本机计量,这样我就可以在flink web UI或rest api中监视它们。怎么做?。 (我的代码中没有任何 RichFunctions 可以按照此处所述以编程方式配置指标https://nightlies.apache.org/flink/flink-docs-master/docs/ops/metrics/。

(我知道如果检查点大小没有减少,则存在一些活动状态,我们需要配置 StateTTL。在添加 stateTTL 之前,我想证明在我的情况下压缩还不够)

如有任何帮助,我们将不胜感激。

apache-flink rocksdb
1个回答
0
投票

对于您想要启用的每个 RocksDB 指标,请在配置中将相应的配置变量设置为 true。例如,

state.backend.rocksdb.metrics.estimate-live-data-size: true

https://nightlies.apache.org/flink/flink-docs-master/docs/deployment/config/#rocksdb-native-metrics

对于您提到的配置设置,您需要包含每个设置的完整名称,并且应该包含单位。例如,

state.backend.rocksdb.compaction.level.max-size-level-base: 4mb

仅仅因为设置回显到任务管理器日志中并不意味着它们已被识别和应用。

© www.soinside.com 2019 - 2024. All rights reserved.