MapReduce
文章平均质量分 81
znjhmyy
这个作者很懒,什么都没留下…
展开
-
MapReduce之Join操作(1)
在关系型数据库中 join 是非常常见的操作,各种优化手段已经到了极致。在海量数据的环境下,不可避免的也会碰到这种类型的需求,例如在数据分析时需要连接从不同的数据源中获取到的数据。不同于传统的单机模式,在分布式存储的下采用 MapReduce 编程模型,也有相应的处理措施和优化方法。 本文对 H...原创 2012-03-14 14:42:37 · 109 阅读 · 0 评论 -
MapReduce之Join操作(2)
上一篇介绍了 Repartition Join 的基本思想,实践出真知,具体的实现中总是存在各种细节问题。下面我们通过具体的源码分析来加深理解。本文分析的是 Hadoop-0.20.2 版本的 datajoin 代码,其它版本也许会有变化,这里暂且不论。 参看源码目录下,共实现有 7 个类,分别是: ArrayListBackItera...原创 2012-03-14 16:21:53 · 96 阅读 · 0 评论 -
MapReduce之Join操作(3)
本文讲述如何在map端完成join操作。之前我们提到了reduce-join,这种方法的灵活性不错,也是理所当然地能够想到的方法;但这种方法存在的一个最大的问题是性能。大量的中间数据需要从map节点通过网络发送到reduce节点,因而效率比较低。实际上,两表的join操作中很多都是无用的数据。现在考虑可能的一种场景,其中一个表非常小,以致于可以直接存放在内存中,那么我们可以利用Hadoo...原创 2012-03-15 20:18:51 · 97 阅读 · 0 评论 -
MapReduce之Join操作(4)
半连接(semijoin) 之前已经讨论了reduce-side join和map-side join(replicated join),第一种较通用但效率不高,第二种对于表的大小有需求。然而即使存在表的大小不对称的情况,在许多情况下较小的表仍然不能存到内存中。这里讨论一下半连接(semijoin),这是传统的关系型数据库中的概念。它对应这样一种常见需求:用户只关心合并之...原创 2012-03-16 15:15:24 · 158 阅读 · 0 评论