Apache spark spark mapwithstate为什么存储空间的数量保持为20?

Apache spark spark mapwithstate为什么存储空间的数量保持为20?,apache-spark,spark-streaming,bigdata,Apache Spark,Spark Streaming,Bigdata,我正在使用spark mapwithstate,但存储空间仍在继续增长 问题1. And in InternalMapWithStateDStream, storagelevel is fixed to MEMORY_ONLY. Private [streaming] object InternalMapWithStateDStream { Private val DEFAULT_CHECKPOINT_DURATION_MULTIPLIER = 10 } 内存中的MapPartitio

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

问题1.

And in InternalMapWithStateDStream, storagelevel is fixed to MEMORY_ONLY.
Private [streaming] object InternalMapWithStateDStream {
  Private val DEFAULT_CHECKPOINT_DURATION_MULTIPLIER = 10
}
内存中的MapPartitionsRDD大小9GB x 20可以减小此大小吗

问题2.

And in InternalMapWithStateDStream, storagelevel is fixed to MEMORY_ONLY.
Private [streaming] object InternalMapWithStateDStream {
  Private val DEFAULT_CHECKPOINT_DURATION_MULTIPLIER = 10
}
由于其大小,我想更改为persist(StorageLevel.MEMORY\u ONLY\u SER)。可能吗

问题3.

And in InternalMapWithStateDStream, storagelevel is fixed to MEMORY_ONLY.
Private [streaming] object InternalMapWithStateDStream {
  Private val DEFAULT_CHECKPOINT_DURATION_MULTIPLIER = 10
}
我想减少这个检查点值。可能吗

内存中的MapPartitionsRDD大小9GB x 20可以减小此大小吗

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

我想更改为持久(StorageLevel.MEMORY\u ONLY\u SER),因为 它的大小。可能吗

不可以,您不能覆盖
MapWithStateDStream
的内存中设置

我想减少这个检查点值。可能吗

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

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

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

谢谢您的回答。1.集群分布良好。但您只需要最后一个状态存储,为什么还有剩余的19个存储?默认情况下,dStream.mapWithState(spec).checkpoint(秒(4))不工作运行10 interva
val kafkastatesttream=chnlStream.mapWithState(stateSpec)kafkastatesttream.checkpoint(秒(10*5))val kafkaSnapshotStream=kafkastatesttream.stateSnapshots()
@hyunkeunnlee但您只需要最后一个状态存储,为什么还有剩余的19个存储空间?这完全取决于如何存储状态。传入状态是否有不同的键?您是否在每次迭代中存储新状态?给我们看看代码。关于检查点,如果它不使用您的自定义时间间隔,则应每隔`批处理时间默认时间间隔运行一次:嗨,你找到解决办法了吗?我也面临同样的问题我,你找到解决办法了吗?我也面临同样的问题