话说,join 大表与一小表,使用Map Join将会有显著的性能提升。
今天测试,果真如此: 大表约400万记录,大小约400M; 小表200条记录,大小1K. 启用 set hive.auto.convert.join = true; 即使用Map Join 只需30秒左右, 启用 set hive.auto.convert.join = false; 需要 2分钟左右,即使 set mapred.reduce.tasks = 1; 还是一样的结果。
之前已经看过facebook的 Join Optimization in Apache Hive了,没太明白。。。。
在这里,到底是什么导致Common Join就比Map Join 慢??