rdd的快取能夠在第一次計算完成後,將計算結果儲存到記憶體、本地檔案系統或者tachyon中。通過快取,spark避免了rdd上的重複計算,能夠極大地提公升計算速度。但是,如果快取丟失了,則需要重新計算。如果計算特別複雜或者計算耗時特別多,那麼快取丟失對於整個job的影響是不容忽視的。
為了避免快取丟失重新計算帶來的開銷,spark又引入了檢查點(checkpoint)機制。
快取是在計算結束後,直接將計算結果通過使用者定義的儲存級別(儲存級別定義了快取儲存的介質,現在支援記憶體、本地檔案系統和tachyon)寫入不同的介質。
而檢查點不同,它是在計算完成後,重新建立乙個job來計算。
為了避免重複計算,推薦 先將rdd快取,這樣就能保證檢查點的操作可以快速完成。
設定檢查點:
//設定檢查點目錄 儲存在hdfs上,並使用checkpoint設定檢查點,該操作屬於懶載入
sc.setcheckpointdir("hdfs://ip:9000/checkpoint/")
rdd.checkpoint()
RDD 八 快取與檢查點
rdd通過persist方法或cache方法可以將前面的計算結果快取,預設情況下persist 會把資料以序列化的形式快取在jvm 的堆空間中。但是並不是這兩個方法被呼叫時立即快取,而是觸發後面的action時,該rdd的計算結果將會被快取在計算節點的記憶體中,並供後面重用。示例如下 def mai...
檢查點 為什麼要插入檢查點 檢查點的作用
一 為什麼要插入檢查點 檢查點的作用 檢查點記錄被測系統的預期結果,在執行過程中,qtp將預期結果與實際執行結果進行比較,若一致,測試結果報告中,檢查點為passed,否則為failed。只有插入檢查點的 才具有測試能力,檢查功能點是否實現 二 標準檢查點 standard checkpoint 檢...
RDD 中的檢查點機制的理解
檢查點機制目的 資料的持久化 安全性 hdfs 檢查點機制適用場合 dga 中的 lineage過長 在寬依賴上設定 檢查點 更好 檢查點 將 rdd 的資料進行持久化到檔案系統 hdfs 中 問題 checkpoint 執行跟 cache 一樣麼?如下 這裡的 hdfs 路徑注意自己本地 host...