方法一
set hive.auto.convert.join = true; --是否开自动mapjoin
set hive.mapjoin.smalltable.filesize;–mapjoin的表size大小
以上两个参数同时使用,在hive.auto.convert.join为true时,只要小表size小于hive.mapjoin.smalltable.filesize的设置值,并且小表不是关联操作的最后一张表,小表就会走mapjoin。
set hive.auto.convert.join = true; set hive.mapjoin.smalltable.filesize = 6250000; select * from table_1 --小表,size? 5m join table_2 on 1=1;
方法二
sethive.ignore.mapjoin.hint; --true 注释方式不生效 false注释方式生效 强行指定需要加入内存走mapjoin的表
set?hive.ignore.mapjoin.hint=true; select ? ? ? *? from table_2 join table_1?--小表,size??5m on 1=1;
如果mapjoin生效会在mr日志中看到以下打印日志



