9.3.4 map join

如果不指定 MapJoin 或者不符合 MapJoin 的条件,那么 Hive 解析器会将Join操作转换成Common Join,即:在 Reduce 阶段完成 join。容易发生数据倾斜。

可以用 MapJoin 把小表全部加载到内存在map端进行join,避免reducer处理。

MapJoin是 Hive 的一种优化操作,其适用于小表 JOIN 大表的场景,由于表的 JOIN 操作是在 Map 端且在内存进行的,所以其并不需要启动 Reduce 任务也就不需要经过shuffle 阶段,从而能在一定程度上节省资源提高 JOIN 效率

// 是否开启 MapJoin
set hive.auto.convert.join = true; 
// 大表小表的阈值设置(默认25M一下认为是小表):
set hive.mapjoin.smalltable.filesize=25000000;

Copyright © 尚硅谷大数据 2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-11-20 18:14:22

results matching ""

    No results matching ""