Apache flink 如何在flink中设置rocksdb内存表大小?

Apache flink 如何在flink中设置rocksdb内存表大小?,apache-flink,Apache Flink,我想限制rocsdb的内存表大小。我有几个问题: 1、taskmanager.memory.size配置是否包括rocksdb memtable的内存量? 2、是否有任何配置可以设置rocksdb memtable大小 Flink的内存参数中不包括RocksDB内存。你必须确保Flink为RocksDB留下足够的内存。然而,这并不简单,因为Flink将为有状态运算符的每个实例使用一个RocksDB实例。这意味着每个TaskManager的RocksDB实例数量取决于作业中有状态运算符的数量以及这

我想限制rocsdb的内存表大小。我有几个问题: 1、taskmanager.memory.size配置是否包括rocksdb memtable的内存量? 2、是否有任何配置可以设置rocksdb memtable大小

  • Flink的内存参数中不包括RocksDB内存。你必须确保Flink为RocksDB留下足够的内存。然而,这并不简单,因为Flink将为有状态运算符的每个实例使用一个RocksDB实例。这意味着每个TaskManager的RocksDB实例数量取决于作业中有状态运算符的数量以及这些运算符的并行性(每个TM最多运行一个运算符的#个插槽实例)

  • 配置RockSDBStateBend时,可以传递任何RocksDB参数


  • 谢谢你的回答。顺便问一下,“taskmanager.heap.mb”参数对流作业有影响吗?我的流作业在部署在Thread上的群集上运行,由于内存有限,我的作业总是被Thread终止。我已经配置了“taskmanager.heap.mb”参数,但它仍然超过了我配置的值。
    taskmanager.heap.mb
    参数指定了TM的JVM大小。不过,JVM之外也有内存分配,比如Netty和RocksDB。谢谢您的回答。