更新時(shí)間:2023年05月12日17時(shí)55分 來(lái)源:傳智教育 瀏覽次數(shù):
窄依賴:Spark可以對(duì)窄依賴進(jìn)行優(yōu)化:合并操作,形成pipeline(管道),同一個(gè)管道中的各個(gè)操作可以由同一個(gè)線程執(zhí)行完,且如果有一個(gè)分區(qū)數(shù)據(jù)丟失,只需要從父RDD的對(duì)應(yīng)個(gè)分區(qū)重新計(jì)算即可,不需要重新計(jì)算整個(gè)任務(wù),提高容錯(cuò)。
寬依賴:Spark可以根據(jù)寬依賴進(jìn)行state階段劃分,同一個(gè)stage階段中的都是窄依賴,可以對(duì)該階段內(nèi)的窄依賴優(yōu)化
寬依賴有shuffle,子RDD的一個(gè)分區(qū)會(huì)依賴于父RDD的多個(gè)分區(qū)--錯(cuò)誤,父RDD的一個(gè)分區(qū)會(huì)被子RDD的多個(gè)分區(qū)所依賴--正確。
窄依賴:沒(méi)有shuffle,子RDD的一個(gè)分區(qū)只會(huì)依賴于父RDD的1個(gè)分區(qū)--錯(cuò)誤,父RDD的一個(gè)分區(qū)只會(huì)被子RDD的1個(gè)分區(qū)所依賴--正確。
總結(jié):
窄依賴: 并行化+容錯(cuò)
寬依賴: 進(jìn)行階段劃分(shuffle后的階段需要等待shuffle前的階段計(jì)算完才能執(zhí)行)。
北京校區(qū)