spark資料傾斜問題

2021-07-24 19:15:52 字數 1163 閱讀 1676

資料傾斜:(加更大記憶體 跟cpu硬體是效能優化的根本之道)

(一)            資料傾斜帶來的致命性後果:

1.      oom(根本原因資料太多)一般oom都是由於資料傾斜所致,spark基於jvm之上的

2.      速度非常慢

(二)            資料傾斜的基本特徵:

1.      任務分配不均勻 

2.      個別task處理過度大量的資料(shuffle過程中遇到同乙個key的value太多了。基本都存在業務熱點問題,這是現實問題【20%與80%的關係】)

(三)            資料傾斜的定位

1.      web ui可以清晰的看見哪些task執行的資料量大小;

2.      log的乙個好處是可以清晰的告訴是哪一行出現問題oom,同時的可以清晰的看到在哪個具體stage出現了資料傾斜(資料傾斜一般在shuffle過程中產生),從而定位具體的shuffle**,也有可能出現絕大多數task非常快,隔壁非常慢;

3.      **走讀,重點看join、 groupbykey 、 reducebykey的關鍵**;

4.      對資料特徵分布進行分析;

(四)            均衡資料

大塊資料敲碎,資料傾斜時候如果某個key非常多value,那麼可以分成多個key,但是一步到位還有可能不盡人意,多步;

把資料規模變大(當乙個方向走不通時候就沿著反方向走);

區域性聚合+全域性聚合;

先取樣判斷哪個資料多;

etl對資料的key進行聚合或者對資料join操作,資料傾斜最好方式就是不要產生shuffle;

過濾掉傾斜的key;

適當提高並行度;

利用廣播去進行shuffle或者join,能不進行shuffle就進行;

spark基於rdd構建整個排程體系生態體系,核心一就是復用rdd;

spark關於資料傾斜問題

spark的資料傾斜調優方案歸納總結 不來虛的,直接上解決方法。資料傾斜產生原因 在運算過程中把資料分配給不同的task,一般需要shuffle過程,同乙個key都會交給task處理,但是有時同乙個key的values資料量太多造成資料堆積等。判斷是否發生資料傾斜 通過web ui檢視task的me...

spark解決資料傾斜問題

參考 資料傾斜發生的原理 資料傾斜的原理很簡單 在進行shuffle的時候,必須將各個節點上相同的key拉取到某個節點上的乙個task來進行處理,比如按照key進行聚合或join等操作。此時如果某個key對應的資料量特別大的話,就會發生資料傾斜。比如大部分key對應10條資料,但是個別key卻對應了...

Spark 資料傾斜

計算資料時,資料分散度不夠,導致大量資料集中到一台或幾台機器上計算。區域性計算遠低於平均計算速度,整個過程過慢。部分任務處理資料量過大,可能oom,任務失敗,進而應用失敗。1 executor lost driver oom shuffle過程出錯 2 正常執行任務突然失敗 3 單個executor...