在Hadoop中选择不同的记录并使用组合器



《MapReduce设计模式》一书中有查找数据集中不同记录的模式。算法如下:

map(key, record):
    emit record, null
reduce(key, records):
    emit key

第66页说:

Combiner总是可以在这种模式中使用,并且可以帮助有大量的重复项。

map阶段发出记录和NullWritable(不写在导线上)。Combiner试图减少什么?没有要减少的记录

它试图减少映射输出中的重复项。

假设每一行中都有单词的文本数据:

John
Adam
John
John

如果您可以在映射阶段之后将它们组合起来并且只发送:

,则没有必要将每个John发送到减速机。
John
Adam

对于已经存在的每个映射器来说都是不同的,这样可以节省带宽,如果您的分割中有相当数量的非不同记录

相关内容

  • 没有找到相关文章

最新更新