4

很多人說:火花RDD容錯的誤區

Spark不會複製hdfs中的數據。

Spark將操作放置在DAG圖中.Spark構建RDD譜系。如果一個RDD丟失了,他們可以在血統圖的幫助下重建。 所以不需要數據複製,因爲RDDS可以從血統圖重新計算。

我的問題是:

如果一個節點出現故障,火花只會重新計算RDD分區失去了這個節點上,但哪裏的recompution過程所需的數據源從何而來?當節點失效時,你的意思是它的父RDD還在嗎?如果失去一些分區的RDD沒有父RDD(如RDD來自火花流接收器),該怎麼辦?

回答

2

如果我們通過計算失去了一部分,該怎麼辦?

  • 依靠MR的核心洞察力!決定論提供了安全的重新計算。
  • 追蹤每個RDD的「血統」。如果需要,可以從父母重新計算。
  • 有趣的:只需要記錄微小的狀態來做重新計算。

    Need parent pointer, function applied, and a few other bits. 
    Log 10 KB per transform rather than re-output 1 TB -> 2 TB 
    

Source

孩子RDD是介紹如何從父RDD計算RDD元數據。瞭解更多What is RDD dependency in Spark?