【问题标题】:Join three files in single mapreduce program在单个 mapreduce 程序中加入三个文件
【发布时间】:2015-09-02 17:21:42
【问题描述】:

如何在一个 mapreduce 程序中加入三个大型数据集。所有这三个文件都无法放入内存中。file1 有 key K1,file2 有 K2,file3 有 k1 和 k2。我想加入 File1 和 File2引用 File3。如果有任何技术可以做到这一点,请告诉我。提前谢谢...!!

【问题讨论】:

    标签: hadoop join mapreduce


    【解决方案1】:

    你不能用一个 mapreduce 作业来做到这一点。由于您必须为输入 1 和输入 2(键必须是字段 k1 或 k2 和连接标识符)创建两个单独的自定义可写类,并为输入 3 创建单独的一个(键必须是字段 k1、k2 和连接标识符)。所以它需要两个 mapreduce 作业。

    MR 1(根据K1键加入输入1和输入3)。​​

    映射器 1

    地图输出:

    (K,V)=>((K1,input1),值)

    映射器 2

    地图输出:

    (K,V)=>((K1,input3),值)

    在 reducer 中追加/加入数据集。

    MR2(根据K2键加入MR 1的输入2和输出)

    映射器 1:

    地图输出:

    (K,V)=>((K2,input2),值)

    映射器 2:

    地图输出:

    (K,V)=>((K2,输出MR1),值)

    在 reducer 中追加/加入数据集

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-31
      • 2012-10-25
      • 1970-01-01
      • 1970-01-01
      • 2012-08-01
      • 1970-01-01
      • 2018-03-14
      • 1970-01-01
      相关资源
      最近更新 更多