Spark shuffle流程細則

2021-08-16 18:14:29 字數 365 閱讀 2140

hadoop中的shuffle存在map任務和reduce任務之間,而spark中的shuffle過程存在stage之間。

shuffle操作分為兩種,分別是寫操作和讀操作。

基於排序的shuffle操作: 基於雜湊的shuffle操作會產生很多檔案,這對檔案系統來說是乙個非誠大的負擔,而且在總資料量不大而檔案特別多的情況下,隨機讀寫會嚴重降低i/o效能。大量檔案的帶來的問題還包括快取。快取所占用的記憶體過多是一筆很大的開銷。每個shuffle map task只會產生乙個單獨的檔案,以及這個檔案的索引,其中索引中 記載著,這個檔案的那些資料是被下游的那些reduce task任務使用。

shuffle的讀操作(拉取資料)

如何確定reduce任務個數

Spark Shuffle記憶體分析

分布式系統裡的shuffle 階段往往是非常複雜的,而且分支條件也多,我只能按著我關注的線去描述。肯定會有不少謬誤之處,我會根據自己理解的深入,不斷更新這篇文章。前言用spark寫程式,乙個比較蛋疼的地方就是oom,或者gc嚴重,導致程式響應緩慢,一般這種情況都會出現在shuffle階段。shuff...

spark shuffle內在原理說明

在mapreduce框架中,shuffle是連線map和reduce之間的橋梁,map的輸出要用到reduce中必須經過shuffle這個環節,shuffle的效能高低直接影響了整個程式的效能和吞吐量。spark作為mapreduce框架的一種實現,自然也實現了shuffle的邏輯。shuffle是...

spark shuffle內在原理說明

在mapreduce框架中,shuffle是連線map和reduce之間的橋梁,map的輸出要用到reduce中必須經過shuffle這個環節,shuffle的效能高低直接影響了整個程式的效能和吞吐量。spark作為mapreduce框架的一種實現,自然也實現了shuffle的邏輯。shuffle是...