当前位置:   article > 正文

Hive解决数据倾斜方法_hive 数据倾斜打散key

hive 数据倾斜打散key

目录

1)分组聚合导致的数据倾斜

(1)判断倾斜的值是否为null

(2)Map-Side聚合

(3)Skew-GroupBy优化

2)Join导致的数据倾斜

(1)Map Join

(2)Skew Join

(3)调整SQL语句

        数据倾斜问题,通常是指参与计算的数据分布不均,即某个key或者某些key的数据量远超其他key,导致在shuffle阶段,大量相同key的数据被发往同一个Reduce,进而导致该Reduce所需的时间远超其他Reduce,成为整个任务的瓶颈。

        Hive中的数据倾斜常出现在分组聚合和join操作的场景中,下面分别介绍在上述两种场景下的优化思路。

1)分组聚合导致的数据倾斜

Hive中的分组聚合是由一个MapReduce Job完成的。Map端负责读取数据,并按照分组字段分区,通过Shuffle,将数据发往Reduce端,各组数据在Reduce端完成最终的聚合运算。若group by分组字段的值分布不均,就可能导致大量相同的key进入同一Reduce,从而导致数据倾斜。

由分组聚合导致的数据倾斜问题,有如下解决思路:

(1)判断倾斜的值是否为null

若倾斜的值为null,可考虑最终结果是否需要这部分数据,若不需要,只要提前将null过滤掉,就能解决问题。若需要保留这部分数据,考虑以下思路。

2Map-Side聚合</

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/805694
推荐阅读
相关标签
  

闽ICP备14008679号