spark-mapwithstate为什么存储空间的数量仍然是20?

时间:2016-11-27 05:13:36

标签: apache-spark spark-streaming bigdata

我正在使用spark mapwithstate,但存储空间继续增长。

enter image description here

问题1。

内存中的MapPartitionsRDD大小9GB x 20你能减小这个大小吗?

问题2。

And in InternalMapWithStateDStream, storagelevel is fixed to MEMORY_ONLY.

由于其大小,我想更改为persist(StorageLevel.MEMORY_ONLY_SER)。有可能吗?

问题3。

Private [streaming] object InternalMapWithStateDStream {
  Private val DEFAULT_CHECKPOINT_DURATION_MULTIPLIER = 10
}

我想减少此检查点值。有可能吗?

2 个答案:

答案 0 :(得分:2)

  

内存中的MapPartitionsRDD大小9GB x 20你能减小这个大小吗?

它是9GB x 20,但它是如何在您的群集中分布的?您需要单击RDD名称以查看分布式状态。如果您想减少内存大小,您需要考虑一种有效的方式来表示您的数据。

  

我想改为持久化(StorageLevel.MEMORY_ONLY_SER)因为   它的大小。有可能吗?

不,您无法覆盖MapWithStateDStream的内存设置。

  

我想减少此检查点值。有可能吗?

是的,您可以设置DStream的检查点间隔:

dStream.mapWithState(spec).checkpoint(Seconds(4))

答案 1 :(得分:0)

MapWithState还会缓存mappedValues,因此您也可以减小批处理间隔以减小缓存的RDD的大小。