資料傾斜問題

2021-09-24 09:19:08 字數 693 閱讀 3854

一、資料傾斜的原因:核心原因是reduce段資料分布不均勻,導致少量reduce子任務未完成

二、解決方案:

2.1調節引數hive.map.aggr = true 在map端部分聚合,相當於combiner

hive.groupby.skewindata = true ,資料傾斜的時候進行負載均衡,當選項設定為true,生成的查詢計畫會有兩個mr job,map輸出的結果集合會隨機分不到reduce中,這樣的結果是相同的group 畢業 key可能會分發到不同的reduce中,從而達到負載均很的目的

set hive.exec.reducers.max=200;

set mapred.reduce.tasks= 200;—增大reduce個數

set hive.groupby.mapaggr.checkinterval=100000 ;–這個是group的鍵對應的記錄條數超過這個值則會進行分拆,值根據具體資料量設定

set hive.groupby.skewindata=true; --如果是group by過程出現傾斜 應該設定為true

set hive.skewjoin.key=100000; --這個是join的鍵對應的記錄條數超過這個值則會進行分拆,值根據具體資料量設定

set hive.optimize.skewjoin=true;–如果是join 過程出現傾斜 應該設定為true

2.2sql調節

spark資料傾斜問題

資料傾斜 加更大記憶體 跟cpu硬體是效能優化的根本之道 一 資料傾斜帶來的致命性後果 1.oom 根本原因資料太多 一般oom都是由於資料傾斜所致,spark基於jvm之上的 2.速度非常慢 二 資料傾斜的基本特徵 1.任務分配不均勻 2.個別task處理過度大量的資料 shuffle過程中遇到同...

解決資料傾斜問題

方法 解決資料傾斜問題 解決方法1.user id為空的不參與關聯,例如 1 2 3 4 5 6 7 8 9 select fromlog a joinbmw users b ona.user idisnotnull anda.user id b.user id unionall select fr...

Hive資料傾斜問題

資料傾斜問題一直是大資料計算中普遍存在的現象,針對這種現象一般都是從兩方面解決,從資料本身和應用軟體進行優化。由於hive中計算任務是轉化成mapreduce進行的,當sql執行緩慢或者某幾個reduce任務一直卡在99 時,說明資料有傾斜現象。根本原因就是資料在map或者reduce中分布不均勻,...