我有一个场景,我需要运行两个Hadoop
个工作来计算两个不同语料库的n-gram
统计信息,并确保他们将每个n-gram(和它的分数)写入同一个reducer(因此,将来我可以在本地读取数据,并比较和对比两个语料库中的两个分数。对于例如如果作业J1
在机器M
上执行其中一个reducer并在本地写入n-gram N
,我希望作业J2
也写n-gram {{1} }到同一台机器N
。
我知道如何计算语料库的n-gram统计数据(供参考,可以参考Google的this发布)。我还定义了我的自定义分区器(根据n-gram中的前两个单词获取哈希值)。现在,我如何确保同一程序的两个不同运行(在两个不同的语料库上)最终将相应的输出写入相同的reducer?