hive 数据倾斜优化

在一个大表关联小表中遇到数据倾斜的问题,优化方法如下

mapjoin

类似写MR时,将小数据直接放入map缓存,通过mapjoin可以加快执行速度,hive2默认开启此功能,不过小表的阈值需要自己修改

set hive.auto.convert.join=true;
set hive.mapjoin.smalltable.filesize=100000000;

null值处理

执行中发现一个reduce需要2个小时,按照关联的key统计了下,发现主要是null值,可以通过将null转为随机数处理

on case when extra['appid'] is null then concat('pv-appid',rand()) else null end  = app.app_id
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。