Hive資料傾斜及解決方案

2021-08-21 15:06:18 字數 894 閱讀 9404

1.現象

資料傾斜是進行大資料計算時最經常遇到的問題之一。當我們在執行hiveql或者執行mapreduce作業時候,如果遇到一直卡在map100%,reduce99%,檢視任務監控頁面,發現只有少量(1個或幾個)reduce子任務未完成。因為其處理的資料量和其他reduce差異過大。一般就是遇到了資料傾斜的問題。資料傾斜其實是進行分布式計算的時候,某些節點的計算能力比較強或者需要計算的資料比較少,早早執行完了,某些節點計算的能力較差或者由於此節點需要計算的資料比較多,導致出現其他節點的reduce階段任務執行完成,但是這種節點的資料處理任務還沒有執行完成。

2.產生原因

1)key

分布不均勻 2)

業務資料本身的特性 3)

建表時考慮不周 4)

某些sql

語句本身就有資料傾斜,如下表所示:

情形

後果

join

中乙個表較小,但是

key集中

分發到某乙個或幾個

reduce

上的資料遠高於平均值

join

大表與大表,但是分桶的判斷字段

0值或空值過多

這些空值都由乙個

reduce

處理,非常慢

group by

group by

維度過小,某值的數量過多

處理某值的

reduce

灰常耗時

count distinct

某特殊值過多

處理此特殊值

reduce耗時

(待完善)

Hive 資料傾斜解決方案(調優)

在做shuffle階段的優化過程中,遇到了資料傾斜的問題,造成了對一些情況下優化效果不明顯。主要是因為在job完成後的所得到的counters是整個job的總和,優化是基於這些counters得出的平均值,而由於資料傾斜的原因造成map處理資料量的差異過大,使得這些平均值能代表的價值降低。hive的...

資料傾斜解決方案

資料傾斜定義 簡單的講,資料傾斜就是我們在資料計算的時候,由於資料的分散度不夠,導致大量的資料集中到了一台或者幾台機器上計算,這些機器的計算速度遠遠低於整個集群的平均計算速度,導致整個計算過程十分緩慢。常見資料傾斜現象 資料傾斜往往會發生在資料開發的各個環節中,比如 用hive資料計算的時候redu...

資料傾斜解決方案

1 聚合原資料 主要操作的是hive資料庫中的資料,先通過hive sql將相同key的資料聚合成一條資料,再進行map操作 當沒辦法聚合成一條資料時 增大key粒度,從而key的數量會減少,但是每個key對應的資料量會增大,key之間的資料量差異可能會減少。2 過濾導致傾斜的key 3 提高shu...