-
默認情況下,Map階段結束后,相同Key的數據分發到一個reduce,當同一key數據量過大時就產生數據傾斜了。並不是所有的聚合操作都必要在Reduce端完成,很多聚合操作都可以先在Map端進行部分聚合,最后在Reduce端得出最終結果
-
開啟Map端聚合參數設置
-
是否在Map端進行聚合,默認為True: hive.map.aggr = true
-
在Map端進行聚合操作的條目數目: hive.groupby.mapaggr.checkinterval = 100000
-
有數據傾斜的時候進行負載均衡(默認是false): hive.groupby.skewindata = true
-
-