Map Reduce:如何从两个不同的数据集中获取块以使它们配对



我想使用以下操作创建一个 Map 函数:

第 1 步:

我有 2 个数据集RS.我想将两个数据集划分为 n 个大小相等的块,这可以通过将每个(R/n and S/n)条记录放入一个块来完成。

然后:

第 2 步:然后,在 Map 阶段结束时,每个可能的块对(一个来自 R,一个来自 S)被分区到一个桶中,以便可以从 Reduce 函数中获取作为输入,并为每个值对提供一些 id 作为键。例如,将被<id:(Sij, Ril)>

所以我的问题是:

  1. 如何实施步骤 1?是否有任何已实现的功能可供我使用?

2.如何在步骤 2 中具体引用这些数据集,以便我可以从 R 中获取一个块,从 S 中获取一个块?

注意:在主要情况下,我像这样定义两个数据集:

 `FileInputFormat.setInputPaths(conf, new Path(args[0]), new Path(args[1]));`

只需提供一个解决方案,我认为有一些更好的解决方案。

正如我在hadoop-0.20.2中测试的那样,默认情况下,每个Map只读取一个文件。因此,只需为Map阶段添加一个计数器,并将计数器输出为键,将数据的上下文输出为值。那么第二个问题将非常简单,只需使用相同的键输出值即可

相关内容

  • 没有找到相关文章

最新更新