資料傾斜:(加更大記憶體 跟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...