我可以在AWS Managed Apache Flink上的何处存储rocksDB状态?

fwzugrvs  于 12个月前  发布在  Apache
关注(0)|答案(1)|浏览(153)

我正在编写一个Flink作业来存储状态并使用RocksDB执行聚合,但我不确定在哪里可以让RocksDB存储状态。在我的本地机器上,我将其存储在~/Downloads/flink-1.15.4/rocksdb/。但在AWS中,我无法使用像file://rocksdb/这样的存储。我也尝试过在S3上存储。
这两种方法都不起作用,我试图避免因为高成本而不得不使用EFS。最好的方法是什么?
对于我的检查点本身,我可以使用S3(同时设置我的env的检查点存储)。

ht4b089n

ht4b089n1#

出于性能原因,rocksdb.localdir应该始终指向本地磁盘。这是RocksDB将保持工作状态的地方,并且必须在每次状态访问时从S3(例如)读取和写入将非常痛苦。
我看不出有任何理由使用EFS; EBS很好。如果你关心性能,请选择SSD。
如果rocksdb.localdir使用临时存储也没关系。由于Flink依赖于检查点进行恢复,因此本地磁盘是否存活并不重要。有些人甚至使用RAM磁盘作为RocksDB本地存储。

相关问题