apache-flink - 带有状态处理器 api 的 Flink 状态后端配置

标签 apache-flink

我使用 state-processor-api,因为它被发布来引导我的 flink 状态。我使用 RocksDBStateBackend 并且它有效。
我们最近转到了 flink 1.13,并且不推荐使用 RocksDBStateBackend,取而代之的是 EmbeddedRocksDBStateBackend。
我的问题:
由于API的变化和我开发的新引导作业,我得到了以下异常:

Caused by: java.io.IOException: Size of the state is larger than the maximum permitted memory-backed state. Size=85356498 , maxSize=5242880 . Consider using a different state backend, like the File System State backend.


我在这里声明我的状态后端:
val backend = new EmbeddedRocksDBStateBackend(true)
在这里我创建我的保存点:
  Savepoint
    .create(backend, MAX_PARALLELISM)
    .withOperator("my_operator", transformMyOperator)
    .write(savepointPath)
另外,我的 flink 集群配置为使用 RocksDB 状态后端,
和所有其他 flink 拓扑都使用 RocksDB 后端。
所以我想知道为什么我会收到一个异常,说我不应该使用内存状态后端,因为我使用的是 RocksDB。欢迎任何帮助。

最佳答案

它是由 1.13 中的一个错误引起的,请参阅 FLINK-23728 ,运行 1.14.0-RC0 确实为我解决了这个问题。

关于apache-flink - 带有状态处理器 api 的 Flink 状态后端配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68314652/

相关文章:

java - Flink - 查询Kafka主题以获取消费者组的偏移量?

junit - 如何从程序停止flink流作业

machine-learning - 使用 flink runner 在梁上进行 Tensorflow 变换

docker - 无法连接到 docker 中端口9300上的Elasticsearch

apache-flink - Flink TaskManager 无法连接到 docker swarm 任务中的 JobManager

apache-flink - Flink Streaming : The different between TriggerResult. FIRE 和 TriggerResult.FIRE_AND_PURGE

java - Apache Flink - 无法将本地 Kinesis 用于 FlinkKinesisConsumer

python - FileNotFoundException :File file:/path/to/file/in. txt不存在或者运行Flink的用户没有足够的权限访问它

java - 在 Java Flink 作业中使用 Python 用户定义函数

unit-testing - 为 Flink SQL 添加单元测试