zoukankan      html  css  js  c++  java
  • Mapreduce实例——Reduce端join

    实验目的

    1.了解reduce端join的适用场景

    2.准确理解reduce端join的设计原理

    3.熟练掌握reduce端join程序代码的编写

    实验原理

    在Reudce端进行Join连接是MapReduce框架进行表之间Join操作最为常见的模式。

    1.Reduce端Join实现原理

    (1)Map端的主要工作,为来自不同表(文件)的key/value对打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。

    (2)Reduce端的主要工作,在Reduce端以连接字段作为key的分组已经完成,我们只需要在每一个分组当中将那些来源于不同文件的记录(在map阶段已经打标志)分开,最后进行笛卡尔只就ok了。

    2.Reduce端Join的使用场景

    Reduce端连接比Map端连接更为普遍,因为在map阶段不能获取所有需要的join字段,即:同一个key对应的字段可能位于不同map中,但是Reduce端连接效率比较低,因为所有数据都必须经过Shuffle过程。

    3.本实验的Reduce端Join代码执行流程:

    (1)Map端读取所有的文件,并在输出的内容里加上标识,代表数据是从哪个文件里来的。

    (2)在Reduce处理函数中,按照标识对数据进行处理。

    (3)然后将相同的key值进行Join连接操作,求出结果并直接输出。

     

     

    启动hadoop

     

    生成文件

     

     

    创建项目、写入代码

     

    运行

      

    结果:

     

  • 相关阅读:
    STL set
    STL pair
    STL简介
    最长公共子序列lcs
    MySQL常用内置函数整理
    MySQL注入点写webshell的五种方式
    phpAdmin写webshell的方法
    mysql之突破secure_file_priv写webshell
    MySQL提权之启动项提权
    MySQL提权之mof提权
  • 原文地址:https://www.cnblogs.com/a8047/p/15652564.html
Copyright © 2011-2022 走看看