zoukankan      html  css  js  c++  java
  • [大牛翻译系列]Hadoop(2)MapReduce 连接:复制连接(Replication join)

    4.1.2 复制连接(Replication join)

    复制连接是map端的连接。复制连接得名于它的具体实现:连接中最小的数据集将会被复制到所有的map主机节点。复制连接有一个假设前提:在被连接的数据集中,有一个数据集足够小到可以缓存在内存中。

    如图4.5所示,MapReduce复制连接工作原理如下:

    1. 使用分布式缓存(Districubted cache)将这个小数据集复制到所有运行map任务的节点。
    2. 用各个map任务初始化方法将这个小数据集装载到一个哈希表(hashtable)中。
    3. 逐条用大数据集中的记录遍历这个哈希表,逐个判断是否符合连接条件。
    4. 输出符合连接条件的结果。

    复制连接的实现非常直接明了。更具体的内容可以参考《Hadoop in Action》。附录D.2提供了一个通用的框架来实现复制连接(http://www.cnblogs.com/datacloud/p/3617078.html)。这个框架支持任意类型的InputFormat和OutputFormat的数据。(我们将在下一个技术中使用这个框架。)复制连接框架根据内存足迹的大小从分布式缓存的内容和输入块(input split)两者中动态地决定需要缓存的对象。

    如果所有的输入数据集都不能够小到可以放到缓存中,那有没有办法来优化map端连接呢?那就到了看半连接(semi-join)的时间了。

  • 相关阅读:
    [Luogu]小Z的AK计划
    [POI2006]OKR-Periods of Words
    [NOI2014]动物园
    [NOI2009]管道取珠
    [IOI2005]河流
    [国家集训队]Crash的文明世界
    [HDU5382]GCD?LCM!
    [AGC027E]ABBreviate
    [CF]Round510
    [NOIp2005]篝火晚会
  • 原文地址:https://www.cnblogs.com/datacloud/p/3579333.html
Copyright © 2011-2022 走看看