Persist 的 MEMORY_ONLY 級別的存儲等于 Cache,Persist 其他的配置只是存儲的方式不同,作用和原理是和 Cache 類似的,他們二者的區別如下:
* Cache、Persist 是轉化類算子,和其他算子一樣,觸發的時機是在對應分區的上游算子計算完成之后。
* Cache、Persist 會把 RDD 緩存到指定位置,這個操作不會改變 Lineage 血緣的依賴關系,且 Job 執行完成之后,緩存的數據會被清除。
* Cache、Persist 一般應用于需要訪問重復數據的應用(如迭代型算法和交互式應用)緩存可以運行得更快。
* CheckPoint 執行完畢后,會產生 CheckPointRDD,此時 lineage 血緣關系已經改變了,容錯會從 CheckPointRDD 開始。
* CheckPoint 將 RDD 持久化到 HDFS ,會被永久保存,可以給其他的 Driver 使用
* 雖然Presist 也可以持久化數據到磁盤,但是它有BlockManager管理,一旦Driver結束,BlockManager 也會 stop,
被 cache 到磁盤上的 RDD 也會被清空,而 checkpoint 將 RDD 持久化到HDFS或本地文件,如果不被手動 remove 掉,是一直存在的。
更多關于IT(替換成當前文章主詞)培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經驗,采用全程面授高品質、高體驗培養模式,擁有國內一體化教學管理及學員服務,助力更多學員實現高薪夢想。
注:本文部分文字和圖片來源于網絡,如有侵權,請聯系刪除。版權歸原作者所有!