hive join优化

整理两年前草稿

MapJoin在使用合理的情况下性能优于普通Join,可以通过显式的优化器提示让执行计划采用mapjoin,这在大部分hive的优化文章中都有介绍,这里想说的是可以通过配置hive的参数,在join中存在小表时优化器自动采用mapjoin完成连接操作,设置参数如下:

hive.auto.convert.join = true

hive.smalltable.filesize = 30000000

参数分别表示启用自动转化与小表的文件大小,执行计划会同时生成两种join的计划,在实际执行时根据表的大小决定采取哪种join方式,当实际内存不够大,mapjoin挂掉时,hive会自动重启普通join。

在使用reduceJoin时,把小表放在前面是有好处的,reduce会试图将前表放入内存建立Hash结构(类似Oracle join两大表的情况,这时的连接策略一般就是hash)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值