开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC中关于状态后台 我用了 EmbeddedRocksDBStateBackend?

Flink CDC中关于状态后台
我用了 EmbeddedRocksDBStateBackend 但是很慢,磁盘读写拉满了
如果用 HashMapStateBackend 这个我怕内存会爆
请教一下,怎么给rocksdb做调优,稍微快一点也行,我用了rocksdb之后比我原先慢了不是一点半点?不是,最差那种机械盘,写入35MB每秒,读取5MB每秒,拉满就这种水平的样子
反正比较慢,能换SSD我就不问了呀
SSD大概也就几百MB每秒吧,提升2个数量级最多了,感觉也不是特别大的提升
主要是要SSD的话,flink的使用成本有点高吧,感觉还是能想办法优化一下的,rocksdb太慢了,我换成hashmap了,放弃rocksdb了
不过我用MapState也就是用来做去重的,把对象转换成SHA512存进去会小一点

但是还是担心会爆掉,碰撞倒不是特别担心

展开
收起
真的很搞笑 2023-07-13 12:50:16 253 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    EmbeddedRocksDBStateBackend是Flink提供的一种状态后端实现,它使用RocksDB作为底层存储引擎。状态后端用于在Flink中管理和持久化状态信息,例如Flink应用程序的算子状态、键值状态等。

    使用EmbeddedRocksDBStateBackend作为状态后端可以提供较高的性能和可靠性,并且可以在Flink应用程序中轻松地进行配置。在Flink CDC中使用EmbeddedRocksDBStateBackend可以使Flink CDC在处理大量数据时更加高效、可靠。

    在使用EmbeddedRocksDBStateBackend时,您需要注意以下几点:

    1.配置RocksDB的内存大小:RocksDB使用内存来缓存数据,因此需要适当地配置RocksDB的内存大小,以充分利用系统资源并提高性能。

    2.定期清理过期数据:EmbeddedRocksDBStateBackend中存储的数据可能会变得过时或无用,因此需要定期清理过期数据,以释放存储空间并提高性能。

    2023-07-29 23:10:58
    赞同 展开评论 打赏
  • 如果您在Flink CDC中使用了EmbeddedRocksDBStateBackend作为状态后端,并且遇到了磁盘读写速度较慢的问题,您可以尝试以下优化措施来提高性能:

    1. 确保合适的硬件配置:确保您的计算节点上的磁盘性能足够支持高速读写。如果您使用的是机械硬盘,考虑升级到固态硬盘(SSD)可以显著提升磁盘性能。

    2. 调整RocksDB配置:通过调整RocksDB的相关配置参数可以改善性能。您可以尝试调整如下参数:

       - rocksdb.write-buffer-size:增加该参数的值可以提高写入性能,默认值为64MB。    - rocksdb.max-write-buffer-number:增加该参数的值可以提高写入并行度,默认值为2。    - rocksdb.block-cache-size:增加该参数的值可以提高读取性能,默认值为8MB。

       您可以通过在Flink配置文件中设置这些参数来调整。注意,在进行调整时要根据实际情况进行测试和评估,以找到最佳的性能配置。

    3. 考虑其他状态后台:如果您担心HashMapStateBackend可能会导致内存溢出,可以尝试使用其他状态后台,例如FsStateBackendFsStateBackend将状态保存在文件系统中,可以提供较高的容量,并减轻内存压力。

       在使用HashMapStateBackend时,确保根据您的数据量和内存限制来合理设置并行度和内存分配。

    4. 调整任务并行度:如果您的任务并行度过高,可能会导致磁盘负载较大,影响性能。考虑减少任务的并行度,以降低磁盘读写的压力。

    5. 监控和日志:监控任务的运行状态和性能指标,并查看Flink的日志文件以获取更多信息。日志文件通常会记录错误、异常堆栈跟踪和其他有用的调试信息,帮助您定位性能问题所在。

    需要注意的是,优化RocksDB的配置可能需要根据具体情况进行测试和调整。您可能需要根据任务的特点和硬件环境,尝试不同的参数配置来达到最佳性能。

    2023-07-29 22:16:35
    赞同 展开评论 打赏
  • ssd磁盘嘛?换ssd磁盘吧,xxHash64 可以更加小几倍,此回答整理自钉群“Flink CDC 社区”

    2023-07-13 15:54:55
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

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