0

可能是一个非常蹩脚的问题。我有两个文档,我想以 map reduce 方式找到两个文档的重叠,然后比较重叠(假设我有一些措施可以做到这一点)

所以这就是我的想法:

1) Run the normal wordcount job on one document (https://sites.google.com/site/hadoopandhive/home/hadoop-how-to-count-number-of-times-a-word-appeared-in-a-file-using-map-reduce-framework)
2) But rather than saving a file, save everything in a HashMap(word,true)
3) Pass that HashMap along the second wordcount mapreduce program and then as I am processing the second document, check the words against the HashMap to find whether the word is present or not.

所以,像这样

 1) HashMap<String, boolean> hm = runStepOne(); <-- map reduce job
 2) runSteptwo(HashMap<String, boolean>)

我如何在hadoop中做到这一点

4

2 回答 2

3

听起来您可以使用某种形式的DistributeCache在初始 wordcount 作业之后存储您的中间结果,然后运行另一个利用这些中间结果来测试它们是否出现在第二个文档中的作业。您也许可以将这两个步骤封装到一个 MR 工作中,但我不知道该怎么做。

于 2013-01-14T23:47:34.077 回答
1

查看使用 MapReduce 进行数据密集型文本处理中的第 3.5 节,了解如何进行连接。同一篇论文中也有不同的 MR 算法。

于 2013-01-15T00:58:31.033 回答