【问题标题】:Spark Structured Streaming state management with RocksDBSpark Structured Streaming 状态管理与 RocksDB
【发布时间】:2023-01-20 14:58:32
【问题描述】:

对于一个特定的用例,我们正在使用 spark 结构化流,但这个过程不是高效和稳定的。聚合有状态操作是整个作业中耗时最多的阶段,也是内存处理阶段。 Spark Streaming 提供了 rocksDB 的实现来管理状态。它帮助我们获得了一些稳定性,但增加了时间开销。所以我们正在寻求优化 rocksDB 的实现。在探索日志时,我们了解到命中率计数始终为零,并且块缓存命中率很低。如果有人可以阐明这一点,那将非常有帮助。

RocksDB 本身提供各种调优参数,例如写缓冲区大小,min_buffer_to_merge.我们试图将这些参数公开给 spark。然后将参数值设置得高,以增加我们命中 memtable 的机会,但这没有帮助。

【问题讨论】:

    标签: apache-spark spark-streaming spark-structured-streaming rocksdb


    【解决方案1】:

    RocksDB 主要是状态的备份(其他选项是 HDFS)或在分区键的本地缓存(内存)不在同一执行程序中时在随机播放期间使用。 您可以检查 spark ui 中提供的有状态运算符指标,以查看内存(缓存)在命中 rocksdb 之前的使用情况。

    可能下面这篇文章可以帮助获取更多信息。 https://medium.com/@vndhya/stateful-processing-in-spark-structured-streaming-memory-aspects-964bc6414346。 (披露:这是我写的)

    【讨论】:

      猜你喜欢
      • 2018-06-04
      • 2018-01-31
      • 2021-05-22
      • 2020-12-28
      • 2020-03-19
      • 1970-01-01
      • 2020-09-28
      • 2023-03-31
      • 2020-09-12
      相关资源
      最近更新 更多