大数据优化之数据倾斜

数据倾斜

数据倾斜概念

在做计算的时候,数据的分散度不够(数据的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创建

原文地址:https://www.cnblogs.com/junstudys/p/10162709.html