檢查點機制目的: 資料的持久化 + 安全性(hdfs)
檢查點機制適用場合:
dga 中的 lineage過長
在寬依賴上設定 檢查點 更好
檢查點:
將 rdd 的資料進行持久化到檔案系統(hdfs)中
問題:checkpoint 執行跟 cache 一樣麼?
**如下:(這裡的 hdfs 路徑注意自己本地 hosts 檔案要有對映關係)
@test
def checkpointdemo(): unit =
結果:
1[1588064924441]
2[1588064924442]
1[1588064924730]
2[1588064924730]
2[1588064924730]
1[1588064924730]
分析:
發現前兩次輸出結果不一致,從cache理解角度,三次輸出應該都是相同的。因此可以發現, checkpoint 執行方式跟 cache 是不同的
checkpoint 寫入流程:
在遇到 action 運算元的時候,開始對資料進行處理,當資料結束後,才從後往前一次檢查每乙個 rdd ,看看需不需要進行 checkpoint ,如果需要,則執行下一步
在從頭開始一次執行運算元,知道設定了 checkpoint 的 rdd ,然後將資料儲存在 hdfs 上(本質上是重新啟動乙個執行緒,進行寫執行運算元流程並存資料到hdfs上)
清楚 checkpoint 的 rdd 中所有依賴(斷開父依賴)
小技巧:
一般在 checkpoint 之前都要進行 cache 或者 persist 。仔細想想哦
因為是建立新的執行緒,從頭開始執行運算元,當我們啟用 cache 的時候,直接從 cache 中讀取資料進行寫入即可
RDD的檢查點(checkpoint)機制
rdd的快取能夠在第一次計算完成後,將計算結果儲存到記憶體 本地檔案系統或者tachyon中。通過快取,spark避免了rdd上的重複計算,能夠極大地提公升計算速度。但是,如果快取丟失了,則需要重新計算。如果計算特別複雜或者計算耗時特別多,那麼快取丟失對於整個job的影響是不容忽視的。為了避免快取丟...
spark streaming 檢查點機制
乙個streaming應用程式要求7天24小時不間斷執行,因此必須適應各種導致應用程式失敗的場景。spark streaming的檢查點具有容錯機制,有足夠的資訊能夠支援故障恢復。支援兩種資料型別的檢查點 元資料檢查點和資料檢查點。1 元資料檢查點,在類似hdfs的容錯儲存上,儲存streaming...
RDD 八 快取與檢查點
rdd通過persist方法或cache方法可以將前面的計算結果快取,預設情況下persist 會把資料以序列化的形式快取在jvm 的堆空間中。但是並不是這兩個方法被呼叫時立即快取,而是觸發後面的action時,該rdd的計算結果將會被快取在計算節點的記憶體中,並供後面重用。示例如下 def mai...