小象學院大數(shù)據(jù)開發(fā)實戰(zhàn)
2023-07-18 11:07 作者:每天一個拼課小技巧__ | 我要投稿
一個任務負責處理一個分區(qū),各個任務之間相互獨立執(zhí)行,不會發(fā)生數(shù)據(jù)交換。
批處理
在批處理引擎中,一個物理數(shù)據(jù)流圖通常被劃分為多個階段,階段之間根據(jù)依賴關系按序執(zhí)行,一個階段只有等其依賴的所有階段都執(zhí)行結束后才能開始執(zhí)行。
例如,在基于批處理引擎的Spark系統(tǒng)中,將每個邏輯數(shù)據(jù)流圖根據(jù)給定的并行度轉換為物理數(shù)據(jù)流圖后,系統(tǒng)會根據(jù)數(shù)據(jù)交換將該物理數(shù)據(jù)流圖劃分為多個階段按序執(zhí)行。如圖3所示,因為在按鍵值分組頂點處發(fā)生數(shù)據(jù)交換,所以整個物理數(shù)據(jù)流圖在此處被切分,形成階段0和階段1兩個階段。其中,階段1中的數(shù)據(jù)處理依賴于階段0處理后的中間結果,即2個階段的執(zhí)行存在先后順序,階段1只有在階段0的處理全部完成后才能開始執(zhí)行。在階段0中,系統(tǒng)啟動3個線程分別處理相互獨立的3個分區(qū)中的數(shù)據(jù),并將得到的中間結果存儲在3個線程各自的本地磁盤上。等到階段0中的3個線程都完成處理后,系統(tǒng)開始進行階段1的處理,階段1中啟動2個線程分別負責2個分區(qū)的數(shù)據(jù),每個線程通過網(wǎng)絡從階段0的中間結果處獲取屬于自己的數(shù)據(jù)進行后續(xù)處理。
標簽: