Spark 六 RDD的血緣依賴

2022-09-16 17:15:18 字數 1583 閱讀 3887

1. rdd血緣關係

​ rdd只支援粗粒度轉換,即在大量記錄上執行的單個操作。將建立rdd的一系列lineage(血統)記錄下來,以便恢復丟失的分割槽。rdd的lineage會記錄rdd的元資料資訊和轉換行為,當該rdd的部分分割槽資料丟失時,它可以根據這些資訊來重新運算和恢復丟失的資料分割槽。

檢視rdd的血緣方法:rdd.todebugstring

示例

/**

* @description: rdd血緣依賴

* @author: haowu

* @create: 2023年08月04日

*/object dependeciedtest

}

結果

| parallelcollectionrdd[0] at makerdd at dependeciedtest.scala:15

----------------------

| parallelcollectionrdd[0] at makerdd at dependeciedtest.scala:15

----------------------

(8) shuffledrdd[4] at groupby at dependeciedtest.scala:21

| parallelcollectionrdd[0] at makerdd at dependeciedtest.scala:15

----------------------

2. 依賴關係

依賴關係: 當前rdd和和父rdd之間的依賴關係

檢視依賴關係方法:rdd.dependencies

示例

/**

* @description: rdd依賴關係

* @author: haowu

* @create: 2023年08月04日

*/object dependeciedtest

}

結果

//不依賴於任何rdd

list()

----------------------

// 1對1(1父1子)依賴 (窄依賴),窄依賴不會劃分stage

list(org.apache.spark.onetoonedependency@1eaf1e62)

----------------------

//1對n(1父多子)依賴(寬依賴或shuffle依賴),寬依賴會劃分stage

list(org.apache.spark.shuffledependency@5fad41be)

----------------------

3. rdd的寬窄依賴

4.任務劃分

job:乙個action運算元就會生成乙個job;

stage:stage等於寬依賴(shuffledependency)的個數加1;

task:乙個stage階段中,最後乙個rdd的分割槽個數就是task的個數。

Spark 5 RDD依賴關係

dag任務劃分 rdds 通過操作運算元進行轉換,轉換得到的新 rdd 包含了從其他 rdds 衍生所必需的資訊,rdds 之間維護著這種血緣關係,也稱之為依賴。依賴包括兩種,一種是窄依賴,rdds 之間分割槽是一一對應的,另一種是寬依賴,下游 rdd 的每個分割槽與上游rdd 也稱之為父 rdd ...

Spark(六) RDD快取機制

舉例 scala var rdd1 sc.textfile hdfs bigdata111 8020 tmp files test cache.txt rdd1 org.apache.spark.rdd.rdd string hdfs bigdata111 8020 1 at textfile at...

spark學習筆記 RDD的依賴關係

1.rdd的依賴關係 1.1 rdd的依賴 rdd和它依賴的父rdd的關係有兩種不同的型別,即窄依賴 narrow dependency 和寬依賴 wide dependency 1.2 窄依賴 窄依賴指的是每乙個父rdd的partition最多被子rdd的乙個partition使用 總結 窄依賴我...