有三个问题针对Hive偏斜连接优化的一些细节:
问题1
在https://cwiki.apache.org/confluence/display/Hive/Skewed+Join+Optimization中,我们知道有关hive skew join的基本概念优化...但有一些细节让我感到困扰:
例如:
从A.id = B.id
上的A连接B中选择A.id 表A中的,有三个倾斜键:id = 1,id = 2,id = 3,其他键均匀分布,是否会启动4个MR作业?
作业1处理平均分配的密钥;
作业2处理倾斜键id = 1;
作业3处理倾斜键id = 2;
作业4处理倾斜键id = 3;
是吗?非常感谢。
问题2
我们知道,关于偏斜连接优化的关键点是我们可以使用地图连接来处理偏斜连接键,例如1,2,3 。因此,如果这不符合地图连接条件,它是否会回退到普通连接?
问题3
默认设置为:hive.skewjoin.key = 100000 ,这对于实际查询来说通常太小。是否可以动态决定偏斜连接的触发条件,例如基于JVM堆大小和偏斜表的总行数?
答案 0 :(得分:0)