目录
四. hive倾斜之HQL中包含count(distinct)时
一:数据倾斜产生原因分类:
1)聚合倾斜
2)join倾斜
分类细节和完整内容请参加我的另一篇博客:https://blog.csdn.net/yezonghui/article/details/115412927
二:hive倾斜之group by聚合倾斜
2.1产生原因:
1)分组的维度过少,每个维度的值过多,导致处理某值的reduce耗时很久;
2)对一些类型统计的时候某种类型的数据量特别多,其他的数据类型特别少。
当按照类型进行group by的时候,会将相同的group by字段的reduce任务需要的
数据拉取到同一个节点进行聚合,而当其中每一组的数据量过大时,会出现其他组
的计算已经完成而这个reduce还没有计算完成,其他的节点一直等待这个节点的任务执行完成。
所以会一直看到map 100% 而reduce 99%的情况。
2.2 解决办法:
set hive.map.aggr = true;
set