开发者社区> 问答> 正文

"Flink RocksDB性能问题 "

"我有一个flink工作(scala)基本上是从kafka-topic(1.0)读取,聚合数据(1分钟事件时间翻滚窗口,使用折叠函数,我知道这是弃用的,但比聚合更容易实现功能),并将结果写入2个不同的kafka主题。

问题是 - 当我使用FS状态后端时,一切运行顺利,检查点需要1-2秒,平均状态大小为200 mb - 也就是说,直到状态大小增加(同时缩小差距,例如)。

我想我会尝试使用rocksdb(over hdfs)作为检查点 - 但吞吐量明显低于fs状态后端。据我所知,当使用fs状态后端时,flink不需要为每个状态访问进行ser / deserialize,因为状态保存在内存(堆)中,岩石db DOES,我猜这是导致减速的原因(和背压,检查点需要更长时间,有时10分钟后超时)。

尽管如此,有时候状态不能适应内存,我试图弄清楚如何使rocksdb状态后端执行“更好”。

是因为弃用的折叠函数?我是否需要微调一些在文档中不易搜索的参数?"

展开
收起
flink小助手 2018-11-28 15:57:01 6082 0
1 条回答
写回答
取消 提交回答
  • flink小助手会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关flink的问题及回答。

    "每个状态后端都将工作状态保存在某个位置,然后将其检查点持久保存在分布式文件系统中。RocksDB状态后端在磁盘上保持其工作状态,这可以是本地磁盘,希望比hdfs更快。

    尝试设置state.backend.rocksdb.localdir(请参阅https://ci.apache.org/projects/flink/flink-docs-release-1.6/ops/state/state_backends.html#rocksdb-state-backend-config-options)到每个任务管理器上最快的本地文件系统的某个地方。

    启用增量检查点也可能产生很大的差异。

    另请参阅Tuning RocksDB。"

    2019-07-17 23:16:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载