【发布时间】:2014-09-09 06:24:13
【问题描述】:
针对Hive skew join优化的一些细节问题提出三个问题:
问题 1
在https://cwiki.apache.org/confluence/display/Hive/Skewed+Join+Optimization 中,我们知道了hive skew join优化的基本思想......但是有一些细节让我很困扰:
例如:
从 A 中选择 A.id 在 A.id = B.id 上加入 B
tableA中有3个skew key:id=1, id=2, id=3,其他key平均分配,会启动4个MR作业吗?
工作 1 处理均匀分布的密钥;
作业 2 处理 skew key id=1 ;
作业 3 处理 skew key id=2 ;
作业 4 处理 skew key id=3 ;
对吗?非常感谢。
问题 2
众所周知,skew join优化的关键在于我们可以使用map join来处理skew join key,比如1 ,2 ,3 .那么如果这不符合 map join 的条件,会退回到普通的 join 吗?
问题 3
默认设置为:hive.skewjoin.key= 100000 ,对于实际查询来说通常太小了。是否可以动态决定倾斜连接的触发条件,例如根据JVM堆大小和倾斜表的总行数?
【问题讨论】:
-
为什么问题用 SQL 标记?