【发布时间】:2013-08-07 03:35:02
【问题描述】:
假设 A 在 A.a=B.a 上连接 B,并且它们都是大表。 Hive 会通过 common join 来处理这个 join 操作。执行图(由 facebook 提供):
但是我被这个图弄糊涂了,只有reducer吗?
据我了解,地图输出键为table_name_tag_prefix+join_key。但是在分区阶段,它仍然使用 join_key 对记录进行分区。在reduce阶段,每个reducer读取具有相同join key的<join_key,value>,reducer不需要读取所有的map split。
【问题讨论】: