如何解决Hive数据倾斜的问题

⾸先要知道的是数据倾斜的本质是数据分配不均匀,那么造成不均匀的原因有很多,⽐如热点key,⾮热 点key分布不均匀等。
那么需要定位到具体发⽣原因,才能对症下药。从技术层⾯来说
(1)⾸先怀疑的是数据热点key,这⾥可以根据采样统计来判断是否有部分key记录过多
(2)如果是热点key,则可以采⽤单独处理或者⼆次聚合等⽅法来处理
(3)如果不是热点key,那么有可能是key本身分布不均匀导致的,那么可以采⽤随机前缀、groupby替代
distinct、mapjoin、空值处理等⼀些⼿段来将key进⾏随机分区
从业务层⾯来说,有可能是提供计算⼝径有问题导致的倾斜问题,例如订单和⽀付关联,正常应该是100w,但是从explain来看,关联得到的结果是1000w或者更多,可需要考虑逻辑⼝径是否有问题。
以上两种⼿段再结合⼀些参数化的配置可以彻底解决倾斜问题

你可能感兴趣的:(hive,hadoop,数据仓库)