大数据学习之路,不定时修改和增加内容,欢迎指正
第4章 数据倾斜(重点)
绝大部分任务都很快完成,只有一个或者少数几个任务执行的很慢甚至最终执行失败,这样的现象为数据倾斜现象。
一定要和数据过量导致的现象区分开,数据过量的表现为所有任务都执行的很慢,这个时候只有提高执行资源才可以优化HQL的执行效率。
综合来看,导致数据倾斜的原因在于按照Key分组以后,少量的任务负责绝大部分数据的计算,也就是说产生数据倾斜的HQL中一定存在分组操作,那么HQL的角度,我们可以将数据倾斜分为单表携带了GroupBy字段的查询和两表(或者多表)Join的查询。
4.1 单表数据倾斜优化
4.1.1 使用参数
当任务中存在GroupBy操作同时聚合函数为count或者sum可以设置参数来处理数据倾斜问题。
是否在 Map 端进行聚合,默认为 True
set hive.map.aggr =<