1. 程式人生 > >Spark Streaming:快取與持久化機制

Spark Streaming:快取與持久化機制

快取與持久化機制 與RDD類似,Spark Streaming也可以讓開發人員手動控制,將資料流中的資料持久化到記憶體中。對DStream呼叫persist()方法,就可以讓Spark Streaming自動將該資料流中的所有產生的RDD,都持久化到記憶體中。如果要對一個DStream多次執行操作,那麼,對DStream持久化是非常有用的。因為多次操作,可以共享使用記憶體中的一份快取資料。 對於基於視窗的操作,比如reduceByWindow、reduceByKeyAndWindow,以及基於狀態的操作,比如updateStateByKey,預設就隱式開啟了持久化機制。即Spark Streaming預設就會將上述操作產生的Dstream中的資料,快取到記憶體中,不需要開發人員手動呼叫persist()方法。 對於通過網路接收資料的輸入流,比如socket、Kafka、Flume等,預設的持久化級別,是將資料複製一份,以便於容錯。相當於是,用的是類似MEMORY_ONLY_SER_2
與RDD不同的是,預設的持久化級別,統一都是要序列化的。