开发者社区 问答 正文

Hadoop中SemiJoin是什么?

Hadoop中SemiJoin是什么?

展开
收起
芯在这 2021-12-06 00:19:39 354 分享 版权
1 条回答
写回答
取消 提交回答
  • SemiJoin,也叫半连接,是从分布式数据库中借鉴过来的方法。它的产生动机是:对于reduce side join,跨机器的数据传输量非常大,这成了join操作的一个瓶颈,如果能够在map端过滤掉不会参加join操作的数据,则可以大大节省网络IO。

      实现方法很简单:选取一个小表,假设是File1,将其参与join的key抽取出来,保存到文件File3中,File3文件一般很小,可以放到内存中。在map阶段,使用DistributedCache将File3复制到各个TaskTracker上,然后将File2中不在File3中的key对应的记录过滤掉,剩下的reduce阶段的工作与reduce side join相同。

    2021-12-06 08:09:53
    赞同 展开评论
问答分类:
问答地址: