Mapreduce中几种join的实现逻辑思想

在mapreduce中分为3大join逻辑,分别的是Map端的join,reduce端的join,semi  join

      1>map 端的join实现逻辑:首先他会有2个map任务,第一个Map任务会将小表的数据完全加载到内存中,并且将数据映射成hashmap的数据结构,在该结构中key就是对应的我们连接的那个key,第2个map任务会去扫描大表的数据,与小表中的数据的key去匹配,如果相等,就进行一个连接操作

    2>reduce端的join:map任务会将将每个表映射成k,v的数据结构,并对表的数据进行打入来源标记,在reduce任务中,获取2张表享同的key就进行一个连接操作

   3>semi join:该join的是实现其实就是reduce端join 的一个优化 ,会在map端过滤掉不能join的数据,这样就可以减少数据的传输,减少磁盘io.

猜你喜欢

转载自blog.csdn.net/w5201314ws6123/article/details/87897338