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

标签 java hadoop mapreduce distinct-values

“MapReduce Design Patterns”一书包含用于在数据集中查找不同记录的模式。这是算法:

map(key, record):
    emit record, null

reduce(key, records):
    emit key

第 66 页说:

The Combiner can always be utilized in this pattern and can help if there are a large number of duplicates.

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

最佳答案

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

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

John
Adam
John
John

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

John
Adam

这对于每个映射器来说已经是不同的 - 如果您的拆分中有相当数量的非不同记录,那么可以节省带宽。

关于java - 在 Hadoop 中选择不同的记录并使用组合器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24785893/

相关文章:

java - 获取 Math.abs 的十进制数输入/输出

java - OSGi/BND : How to exclude classes from bundle generation?

hadoop - 将复制因子设置为 0 会发生什么

hadoop - Oozie 作业卡在运行状态

hadoop - Hadoop编程世界中的关键字上下文是什么?

mapreduce - CouchDB 链接多个文档

java - 如何快速恢复随机交换 2 个元素的递增数组?

java - 尝试使用java和clojure在eclipse中创建maven动态Web项目

hadoop - Spark 独立模式 : Worker not starting properly in cloudera

csv - 将Hive查询导出为CSV