【问题标题】:spark streaming state storage - memory usage火花流状态存储 - 内存使用
【发布时间】:2017-11-21 10:39:36
【问题描述】:

您好,我正在使用 Spark 2.2 运行流式作业,并使用 mapWithState 维护几个状态

批处理间隔为 4 分钟。我每 20 分钟检查一次 Kinesis Dstream。

我还对 Kinesis Dstream 进行了重新分区和缓存,因为它用于多个执行路径。

当我查看存储选项卡时,我总是看到 63 个 RDD(21 个用于 MapPartitionsRDD,21 个 MapWithStateRDD 用于 STATE 1,21 个 MapWithStateRDD 用于 STATE 2)。

如何减少存储空间?我应该检查 mapWithState Dstream 吗?

【问题讨论】:

    标签: apache-spark spark-streaming


    【解决方案1】:

    所以在阅读 mapWithStateDstream 的源代码时,我发现 remember-duration 决定了有多少 rdd 批次将被“记住”或缓存在内存中。

    默认为 2 * checkpoint_duration

    默认的 checkpoint_duration 是 10 * batch_duration。

    因此您可以通过调用 checkpoint 方法在 mapWithStateDstream 上指定 checkpoint_duration 并将其设置为 5 * batch_duration 以减少 50% 的存储空间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多