1. 程式人生 > >大資料優化之資料傾斜

大資料優化之資料傾斜

資料傾斜

資料傾斜概念

在做計算的時候,資料的分散度不夠(資料的Key分佈不均),導致資料分佈在一臺或幾臺機器計算
症狀:典型的現象就是資料reduce到99%很久不動了

資料傾斜原因

總原因:key分佈不均
業務資料的特點(資料的冪律分佈)
人為建表的疏忽
join、group by、count distinct等操作觸發shuffle操作

一些資料傾斜解決方法

將資料均勻分配到各個reduce中是解決資料傾斜的根本所在

業務邏輯

根據業務特點,單獨對特別的業務資料進行聚合

程式

count distinct操作,先轉成group by,再count
left semi join使用

設定引數

hive.map.aggr = true
hive.groupby.skewindata=true

總結

如果玩大資料資料傾斜是繞不過去的一個東西,解決資料傾斜問題是大資料查詢優化的一種方法
資料傾斜是key分佈不均導致
把資料均勻分佈到各個reduce是解決資料傾斜的根本所在
沒有一勞永逸的方法,具體問題具體分析,並且需要不斷除錯

參考資料

漫談千億級資料優化實踐:資料傾斜
hive大資料傾斜總結
006.hive語句優化
Hive優化總結

Changelog

181205建立