Hive 必知必会(一)
1.Hive表关联查询,如何解决数据倾斜的问题?
数据倾斜发生在shuffle阶段,如:
数据倾斜的解决方案
参数调节:
hive.map.aggr=true
Map 端部分聚合,相当于Combiner
,做好列裁剪和filter操作,以达到两表做join的时候,数据量相对变小的效果
第二,
大小表join
工作原理是在Map端把小表加载到内存中,然后读取大表,和内存中的小表完成连接操作
手动map join
hive (hive)> select /*+mapjoin(post)*/ user.id,user.name,post.pid,post.title from user > join post
> on user.id = post.uid;
自动配置
hive (hive)> set hive.auto.convert.join=true;
hive (hive)> set hive.mapjoin.smalltable.filesize=25000000;(默认值就是25MB)
相关文章