SparkStreaming之缓存
与RDD的缓存类似,DStream也允许用户将数据持久化到内存中,只需要使用DStream.persist()方法,就会自动将DSstream中的数据缓存在内存中,这对需要多次计算的DStream数据是一个很好的优化,对于window操作「比如reduceByWindow,reduceByKeyAndWindow」和state操作算子如「updateStateByKey」,默认就是将数据进行缓存持久化的。
一、对于window算子会自动将数据持久化在内存中,不需要手动调用
二、persist(StorageLevels.MEMORY_ONLY_SER)
对于那些从网络接收的inputStream,类似于kafka、flume、socket,默认的持久化存储级别是MEMORY_AND_DISK_SER_2 来保证容错
与RDD不同的是
DStream的默认持久化级别都是将数据以
序列化
的形式缓存在内存中