MAPREDUCE服务 MRS-Hive Join数据优化:Sort Merge Bucket Map Join
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中按桶一个一个读取小表内容,然后与大表做匹配直接得到结果并输出。
- MapReduce服务_什么是HDFS_HDFS特性
- MapReduce服务_什么是Hive_如何使用Hive
- MapReduce服务_什么是MapReduce服务_什么是HBase
- 什么是Spark_如何使用Spark_Spark的功能是什么
- MapReduce服务_如何使用MapReduce服务_MRS集群客户端安装与使用
- Hudi服务_什么是Hudi_如何使用Hudi
- MapReduce服务_什么是Hue_如何使用Hue
- MapReduce服务_什么是HetuEngine_如何使用HetuEngine
- MapReduce服务_什么是Kafka_如何使用Kafka
- MapReduce服务_什么是ZooKeeper_如何使用ZooKeeper