我正在使用spark mapwithstate,但存储空间继续增长。
问题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
}
我想减少此检查点值。有可能吗?
答案 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的大小。