与RDD 类似,spark Streaming 也可以让开发人员手动控制,将数据流中的数据持久化到内存中。对DStream 调用persist ( ) 方法,就可以让spark Streaming 自动将该数据流中的所有产生的RDD 都持久化到内存中。如果要对于一个DStream 多次执行操作,那么对DStream 持久化是非常有用的。因为多次操作,可以共享一份数据。
对于基于窗口的操作,例如reduceBywindow 等以及基于状态的操作,比如updateStateKey ,默认就开启了持久化的机制。即spark streaming 默认就会将上述操作产生的DStream 中的数据,缓存内存中,不需要开发人员手动调用peisist 方法
对于通过网络接收数据的输入流,比如socket ,kafka flume 等持久化 级别是将数据复制一份,已便于容错。相当于是用的类似MEMORY_ONLY_SER_2
与RDD 不同的是,默认的持久化级别,统一都是要序列化的。
spark从入门到放弃五十三:Spark Streaming(13)缓存于持久化
最新推荐文章于 2021-05-10 00:25:54 发布