读书人

Hadoop中的Join示范

发布时间: 2012-08-25 10:06:20 作者: rapoo

Hadoop中的Join示例

1、案例表和数据取自ORACLE的scott/tiger

?

??
Hadoop中的Join示范

?

本次实现的查询:

???
Hadoop中的Join示范

?

2、处理join的思路:

?????? 将Join key 当作map的输出key, 也就是reduce的输入key ,? 这样只要join的key相同,shuffle过后,就会进入到同一个reduce 的key - value list 中去。需要为join的2张表设计一个通用的一个bean.? 并且bean中加一个flag的标志属性,这样可以根据flag来区分是哪张表的数据。reduce 阶段根据flag来判断是EMP表还是DEPT表就很容易了 。而join的真正处理是在reduce阶段。?

?

3、例子:

?

??? 存储数据的bean? (由于数据要在网络上传输必须序列化,hadoop处理的时候需要分组和排序,所以要实现WritableComparable接口):

?

?

?

?

Mapper类:

?

?

?

?验证下处理的结果集:


Hadoop中的Join示范

?

相比硬编码,hive一条SQL可以搞定,呵呵,所以这种低效的硬编码旨在帮助理解,无实际用途。

1 楼 xm_king 2011-08-18 这个可以使用MapReduce的Join,利用DataJoinMapperBase、DataJoinReducerBase、TaggedMapOutput就可以解决楼主的问题了。

读书人网 >软件架构设计

热点推荐