set hive.optimize.bucketmapjoin = true;
set hive.optimize.bucketmapjoin.sortedmerge = true;
set hive.input.format=org.apache.hadoop.hive.ql.io.BucketizedHiveInputFormat;
Sorting by join key makes joins easy ,all possible matches value resides on the same area on disk
Hash bucketing a join key ensures all matching values reside on same node ,equi join can then run with no shuffle .
1条答案
按热度按时间zbwhf8kr1#
如果有两个数据集对于map-side连接来说太大,那么连接它们的一种有效技术就是将这两个数据集排序到bucket中。
诀窍是按相同的联接键进行聚类和排序。
创建表order(int,price float,quantity int),由(cid)聚集到32个bucket中;
创建表customer(id int,first string,last string),按(id)聚集到32个bucket中;
这提供了两个主要的优化好处: