spark RDD的5個重要內部屬性

2021-07-13 10:22:38 字數 1266 閱讀 6342

rdds 介面的五個屬性

下表總結了 rdds 的五個屬性:

rdds 依賴關係

在 spark 中,rdd 之間的依賴關係分為兩類:

1.窄依賴:每個父 rdd 的分割槽都至多被乙個子 rdd 的分割槽使用,即為 onetoonedependecies;

2.寬依賴:多個子 rdd 的分割槽依賴乙個父 rdd 的分割槽,即為 onetomanydependecies。

例如,map 操作是一種窄依賴,而 join 操作是一種寬依賴(除非父 rdds 已經基於 hash 策略被精心劃分過了)。

窄依賴和寬依賴的區別在 spark 開發中很重要。

首先,窄依賴允許在單個集群節點上對乙個資料分片進行流水線式操作,這個節點可以直接訪問所有依賴的父級分割槽。例如,可以逐個元素地依次執行 filter 操作和 map 操作。相反,寬依賴需要所有的父 rdd 資料可用,並且資料已經通過類 mapreduce 中的 shuffle 操作完成了聚合。

其次,在窄依賴中,節點失敗後的恢復更加高效。因為只有直接依賴的父級分割槽需要重新計算,並且這些父級分割槽可以並行地在不同節點上重新計算。相反,在寬依賴的繼承關係中,單個失敗的節點可能導致乙個 rdd 的所有祖先 rdd 重算,從而導致大量計算的重新執行。不過,進行寬依賴類的操作(比如 shuffle 依賴)時,spark 會將中間結果儲存到父分割槽所在的節點上。這和 mapreduce 本地儲存 map 的輸出類似,能簡化資料的故障恢復過程。

檢查點支援 (checkpoint)

雖然 lineage 可用於出現錯誤後 rdd 的恢復,但對於 lineage 很長的 rdd 來說,從源頭恢復耗時可能較長。因此,將某些 rdd 進行檢查點操作 (checkpoint),使之儲存到穩定的儲存上,對錯誤情況下的 rdd 重算是有幫助的。

通常情況下,對於包含寬依賴的長血統 rdd 設定檢查點操作是非常有用的,因為寬依賴條件下,此類 rdd 失效會使得 spark 從各個父 rdd 上重新取得資料進行恢復,且節點失效很有可能影響到寬依賴 rdd 的父節點,重算開銷較大。相反,對於那些窄依賴於穩定儲存上資料的 rdd 來說,對其進行檢查點操作就不是很有必要,如果乙個節點發生故障,rdd 在該節點中丟失的分割槽資料可以通過並行的方式從其他節點中重新計算出來,計算成本只是整個 rdd 的很小一部分。

spark 當前提供了為 rdd 設定檢查點(用乙個 replicate 標誌來持久化)操作的 api,讓使用者自行決定需要為哪些資料設定檢查點操作。

cocos2d的5個重要協議

5個重要協議 protocolccrgbaprotocol nsobject 設定 cccolor3b 結構的顏色資料 void setcolor cccolor3b color cccolor3b color 如果紋理有 premultiplied alpha 資料 那麼更改透明度同時會更改rgb...

oracle 5個重要後台程序作用

oracle後台程序作用總結1 pmon process monitor process 程序監控程序 1.監控程序與執行程序的恢復 2.負責清理buffer cache以及釋放客戶端程序使用的資源。例如重置事務表的狀態,釋放鎖,刪除程序id等 3.註冊例項資訊和排程程序到oracle net se...

資料科學中的五個重要方面(5 P s)

資料科學是關於如何從資料中提取知識。我們定義資料科學作為乙個交叉學科,集合了人,處理過程,計算和大資料平台,特定於應用程式的目的和可程式設計性。產生資料本身的 和方式同樣很重要,但我們首先定義五個p,資料科學活動中的重要組成部分。目的 purpose 目的是指挑戰或一系列你的大資料戰略所定義的挑戰。...