Hadoop 字数

Posted

技术标签:

【中文标题】Hadoop 字数【英文标题】:Hadoop word count 【发布时间】:2017-02-14 08:36:44 【问题描述】:

对于 Hadoop 中的字数统计示例,在 map 函数中,它将 word 和 one 作为中间结果写入文件,并使用 reduce 进行求和。为什么不在 mapper 函数中使用 hashmap,key 是 word,value 是 count,如果一个 word 在 1 个文件 spit 中出现不止一次,则该 word 的 value 将被添加。在 mapper 函数的最后,写出结果。

这样比原来的设计效率更高(不使用combiner),虽然使用combiner,效率应该是一样的。

有什么建议吗?

【问题讨论】:

【参考方案1】:

是的,您也可以使用 hashmap。但是您在设计解决方案时需要考虑最坏的情况。

通常,块的大小为 128 MB,并且考虑到没有或很少重复的小词(就词长而言)。在这种情况下,您将有很多单词,因此没有。 HashMap 中的条目数将增加,消耗更多的内存。您需要考虑到可能有许多不同的作业在同一个数据节点上运行,因此这个消耗更多 RAM 的 HashMap 最终也会减慢其他作业的速度。此外,当 HashMap 的大小增加时,它必须执行 Rehashing,这会为您的作业执行增加更多时间。

【讨论】:

内存可能是一个原因。 更多的内存消耗最终会减慢您的作业执行速度。【参考方案2】:

我知道这是一篇旧帖子,但对于将来寻求 Hadoop 帮助的人来说,也许可以查看这个问题以获取其他参考:Hadoop Word count: receive the total number of words that start with the letter "c"

【讨论】:

以上是关于Hadoop 字数的主要内容,如果未能解决你的问题,请参考以下文章

执行字数统计程序时出现Hadoop错误

在MapReduce中运行WordCount以及字数统计中遇到的问题

Hortonworks 中有关纱线的字数示例失败

ecshop 文章网页描述字数限制增加

WordPress对文章字数有限制吗

vantui输入框字数限制