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

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

Spark中為什么要區(qū)分寬窄依賴?

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

好口碑IT培訓(xùn)

窄依賴:Spark可以對窄依賴進(jìn)行優(yōu)化:合并操作,形成pipeline(管道),同一個管道中的各個操作可以由同一個線程執(zhí)行完,且如果有一個分區(qū)數(shù)據(jù)丟失,只需要從父RDD的對應(yīng)個分區(qū)重新計算即可,不需要重新計算整個任務(wù),提高容錯。

寬依賴:Spark可以根據(jù)寬依賴進(jìn)行state階段劃分,同一個stage階段中的都是窄依賴,可以對該階段內(nèi)的窄依賴優(yōu)化

什么是寬依賴什么是窄依賴

寬依賴有shuffle,子RDD的一個分區(qū)會依賴于父RDD的多個分區(qū)--錯誤,父RDD的一個分區(qū)會被子RDD的多個分區(qū)所依賴--正確。

窄依賴:沒有shuffle,子RDD的一個分區(qū)只會依賴于父RDD的1個分區(qū)--錯誤,父RDD的一個分區(qū)只會被子RDD的1個分區(qū)所依賴--正確。

寬窄依賴

總結(jié):

窄依賴: 并行化+容錯

寬依賴: 進(jìn)行階段劃分(shuffle后的階段需要等待shuffle前的階段計算完才能執(zhí)行)。

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