可能是一个非常蹩脚的问题。 我有两个文件,我想在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中执行此操作
答案 0 :(得分:3)
听起来你可以使用某种形式的DistributeCache来存储初始wordcount作业后的中间结果,然后运行另一个利用这些中间结果的作业来测试它们是否出现在第二个文档中。您可以将这两个步骤封装到一个MR作业中,但是我不知道如何。
答案 1 :(得分:1)
检查Data-Intensive Text Processing with MapReduce中的第3.5节,了解如何进行连接。同一篇论文中也有不同的MR算法。