我有一个需要运行两个的场景 Hadoop
作业计算 n-gram
统计两个不同的语料库,并确保他们将每个n-gram(以及它的分数)写入同一个reducer(以便将来我可以在本地读取数据,并比较和对比两个语料库中的两个分数)。例如,如果作业 J1
执行机器上的一个减速机 M
写n-gram N
在当地,我想找份工作 J2
也可以写n-gram N
到同一台机器 M
.
我知道如何计算一个语料库的n-gram统计数据(作为参考,可以参考google的这篇文章)。我还定义了我的自定义分区器(根据n-gram中的前两个单词进行哈希运算)。现在,我如何确保同一程序的两次不同运行(在两个不同的语料库上)最终将相应的输出写入相同的缩减器?
1条答案
按热度按时间gg0vcinb1#
查看多个输入。通过将两个同级Map器指向同级数据集,可以避免在缩减之前在组合集上运行idMap。