教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

RDD容錯機制?RDD是如何恢復數(shù)據(jù)的?

更新時間:2021年03月05日17時06分 來源:傳智教育 瀏覽次數(shù):



RDD是一個容錯的、并行的數(shù)據(jù)結(jié)構,可以讓用戶顯式地將數(shù)據(jù)存儲到磁盤和內(nèi)存中,并且還能控制數(shù)據(jù)的分區(qū)。對于迭代式計算和交互式數(shù)據(jù)挖掘,RDD可以將中間計算的數(shù)據(jù)結(jié)果保存在內(nèi)存中,當Spark集群中的某一個節(jié)點由于宕機導致數(shù)據(jù)丟失,就可以通過Spark中的RDD進行容錯恢復已經(jīng)丟失的數(shù)據(jù)。RDD提供了兩種故障恢復的方式,分別是血統(tǒng)(Lineage)方式和設置檢查點(checkpoint)方式。下面,我們就來介紹一下這兩種方式。


血統(tǒng)(Lineage)方式,主要是根據(jù)RDD之間的依賴關系對丟失數(shù)據(jù)的RDD進行數(shù)據(jù)恢復。如果丟失數(shù)據(jù)的子RDD在進行窄依賴運算,則只需要把丟失數(shù)據(jù)的父RDD的對應分區(qū)進行重新計算即可,不需要依賴其他的節(jié)點,并且在計算過程中不會存在冗余計算;若丟失數(shù)據(jù)的RDD進行寬依賴運算,則需要父RDD的所有分區(qū)都要進行從頭到尾的計算,在計算過程中會存在冗余計算。為了解決寬依賴運算中出現(xiàn)的計算冗余問題,Spark又提供了另一種方式進行數(shù)據(jù)容錯,即設置檢查點(checkpoint)方式。

設置檢查點(checkPoint)方式,本質(zhì)上是將RDD寫入磁盤進行存儲。當RDD在進行寬依賴運算時,只需要在中間階段設置一個檢查點進行容錯,即通過Spark中的sparkContext對象調(diào)用setCheckpoint()方法,設置一個容錯文件系統(tǒng)目錄(如HDFS)作為檢查點checkpoint,將checkpoint的數(shù)據(jù)寫入之前設置的容錯文件系統(tǒng)中進行高可用的持久化存儲,若是后面有節(jié)點出現(xiàn)宕機導致分區(qū)數(shù)據(jù)丟失,則可以從做檢查點的RDD開始重新計算即可,不需要進行從頭到尾的計算,這樣就會減少開銷。




猜你喜歡:

RDD為什么要進行數(shù)據(jù)持久化?持久化詳細操作步驟示例

怎樣使用Linux和HDFS創(chuàng)建RDD?

RDD是如何操作數(shù)據(jù)轉(zhuǎn)換的?RDD轉(zhuǎn)換算子API示例

傳智教育大數(shù)據(jù)培訓課程


0 分享到:
和我們在線交談!