【hive优化】hive join优化一:大表关联小表

hive join优化一:大表关联小表

两个table的join的时候,如果单纯的使用MR的话会消耗大量的内存,浪费磁盘的IO,大幅度的影响性能。

在大小表join的时候,即一个比较小的表和一个较大的表joining,如果使用mapjoin的话,就可以极大的节省时间,甚至达到只需要正常joining的一半时间。

使用mapjoin的话会把小表直接放到内存,然后在map段跟大表进行join操作,其运行过程如下:
1.运行本地的map join任务
2.然后将小表的数据写到XXX.hashtable文件
3.在给这个文件里面上传一个文件进行map join
4.之后才运行了MR代码去运行计数任务

其参数为: hive.auto.convert.join=true,启用此参数时,Hive在执行时候会自动转化为MapJoin

 

后记:

启用mapjoin后,有可能会比Common Join消耗多一些资源,这点需要注意,但其好处是运行SQL的时间极大的缩短。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值