为啥键在 MapReduce 函数中不是唯一的?

Posted

技术标签:

【中文标题】为啥键在 MapReduce 函数中不是唯一的?【英文标题】:why key is not unique in MapReduce function?为什么键在 MapReduce 函数中不是唯一的? 【发布时间】:2017-11-28 12:39:26 【问题描述】:

当我研究 Hadoop 中的 MapReduce 功能时,很常见的示例是“WordCounting”,而且这张图片也很常用来显示 Map 操作和归约的步骤: https://wikis.nyu.edu/download/attachments/74681720/WordCount%20MapReduce%20Paradigm.PNG?version=1&modificationDate=1462902481180&api=v2

为什么映射部分的键不是唯一的?例如汽车。

【问题讨论】:

您希望尽可能地并行化它。如果你想要Car, 2Car, (1, 1)in 映射,你不能安全地并行处理每个单词。而且这没什么意义,因为无论如何您都需要进行随机播放和减少步骤。 【参考方案1】:

在映射器中 -

Key - 文本文件的偏移量。

- 文本文件中的内容。(请记住,有几种文件格式具有自己的键值格式。文本文件以文件偏移量为键和文件内容即价值

在字数的示例中,您假设它是从拆分器和映射器中的值(文件内容)实际生成的键。 Mapper 中的键是文本文件的文件偏移量,对于每个 Mapper 来说都是唯一的。 Combiner 和 Reducer 处理 Mapper 生成的键值对并执行聚合操作,并在字数问题中将每个单词视为唯一的。

【讨论】:

以上是关于为啥键在 MapReduce 函数中不是唯一的?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用唯一键而不是主键在 Hibernate 中检索记录

Yii2:为啥 auth 键在 User 类中?

为啥有些字典键在从调试器打印时有引号而另一些没有?

MapReduce模型中数据关联使用or语句导致计算效率低下

如何使唯一 = true 的外键在 Django 中成为“可选”?

为啥 PHP 的 uniqid 函数只返回 13 位而不是 14?