为啥键在 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, 2
或Car, (1, 1)
in 映射,你不能安全地并行处理每个单词。而且这没什么意义,因为无论如何您都需要进行随机播放和减少步骤。
【参考方案1】:
在映射器中 -
Key - 文本文件的偏移量。
值 - 文本文件中的内容。(请记住,有几种文件格式具有自己的键值格式。文本文件以文件偏移量为键和文件内容即价值)
在字数的示例中,您假设它是从拆分器和映射器中的值(文件内容)实际生成的键。 Mapper 中的键是文本文件的文件偏移量,对于每个 Mapper 来说都是唯一的。 Combiner 和 Reducer 处理 Mapper 生成的键值对并执行聚合操作,并在字数问题中将每个单词视为唯一的。
【讨论】:
以上是关于为啥键在 MapReduce 函数中不是唯一的?的主要内容,如果未能解决你的问题,请参考以下文章
MapReduce模型中数据关联使用or语句导致计算效率低下