摘自象书
首先,最好用Pig/Hive等做Join,避免手写很多代码
如果不用Pig/Hive,则有两种选择(假设有两个dataset, A和B):
1.Map-Side Joins
比较复杂,可以参见 org.apache.hadoop.examples.Join
2.Reduce-Side Joins
a.使用MultipleInputs将两个dataset都读进来,作为同一个Job的输入
b.两个dataset的mapper使用相同的output key, 以使两个mapper中key相同的output将出现在同一个reducer上 (严格地讲不是同一个key, 这里要自建partitioner来钻个空子,详见象书英文版p251)
c; 在reducer中实现Join逻辑