MAPREDUCE服务 MRS-Hive Join数据优化:Sort Merge Bucket Map Join

时间:2024-10-16 17:58:32

Sort Merge Bucket Map Join

使用Sort Merge Bucket Map Join必须满足以下2个条件:

  • join的两张表都很大,内存中无法存放。
  • 两张表都按照join key进行分桶(clustered by (column))和排序(sorted by(column)),且两张表的分桶数正好是倍数关系。

通过如下设置,启用Sort Merge Bucket Map Join:

set hive.optimize.bucketmapjoin=true;

set hive.optimize.bucketmapjoin.sortedmerge=true;

这种Map Join也没有Reduce任务,是在Map任务前启动MapReduce Local Task,将小表内容按桶读取到本地,在本机保存多个桶的HashTable备份并写入HDFS,并保存在Distributed Cache中,在Map Task中从本地磁盘或者Distributed Cache中按桶一个一个读取小表内容,然后与大表做匹配直接得到结果并输出。

support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_0979.html