将两个不同Hadoop作业的输出写入同一组Reducer

时间:2013-10-08 05:42:49

标签: hadoop n-gram

我有一个场景,我需要运行两个Hadoop个工作来计算两个不同语料库的n-gram统计信息,并确保他们将每个n-gram(和它的分数)写入同一个reducer(因此,将来我可以在本地读取数据,并比较和对比两个语料库中的两个分数。对于例如如果作业J1在机器M上执行其中一个reducer并在本地写入n-gram N,我希望作业J2也写n-gram {{1} }到同一台机器N

我知道如何计算语料库的n-gram统计数据(供参考,可以参考Google的this发布)。我还定义了我的自定义分区器(根据n-gram中的前两个单词获取哈希值)。现在,我如何确保同一程序的两个不同运行(在两个不同的语料库上)最终将相应的输出写入相同的reducer?

1 个答案:

答案 0 :(得分:0)

结帐MultipleInputs。通过将两个兄弟映射器指向兄弟数据集,可以避免在缩减之前在组合集上运行ID映射。