首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MapReduce程序中使用本地聚合方法,如in-mapper组合器?

如何在MapReduce程序中使用本地聚合方法,如in-mapper组合器?
EN

Stack Overflow用户
提问于 2015-02-01 19:06:48
回答 1查看 1.3K关注 0票数 1

我想实现一个词长程序,通过使用本地聚合方法对大型语料库上的4个类别的单词进行分类,但我对这些方法的工作原理没有深入的了解。因为我是MapReduce领域的新手。例如,组合器和映射内组合器之间最明显的区别是什么?此外,我应该在我的代码中添加组合器和映射内组合器,并且应该衡量它们之间的差异。但是我不知道我应该从哪里开始,如果有人帮助我,我会很感激。

EN

回答 1

Stack Overflow用户

发布于 2015-02-03 03:36:01

实现映射内组合器(正如最好描述的here)是在map()方法范围内编写代码的过程,该方法存储多个键-值对,并在输出之前执行某种聚合函数。这与典型的map()方法不同,后者往往一次只处理一个键值对。这是非常危险的,因为开发人员需要非常小心地分配内存。

映射内组合器通常用于排序列表-即,ArrayList用于将X得分最高的条目存储到映射器,并在所有键-值对都进入映射器后输出。显然,耗尽内存的风险很小(除非X或键或值非常大),因此可以立即丢弃大量数据。

或者,常规组合器基本上是在map阶段完成后立即在同一节点上执行的缩减程序。这样做的好处是,开发人员不必担心实现自己的分组(不像映射中的组合器),因此不太可能出现内存问题。主要的缺点是你不能保证组合器会运行。

常规的组合器通常用于计数-带有组合器的WordCount (例如this就是典型的例子。

对于你的情况,我总是会去找一个普通的组合器。让它完成对类别进行分组的所有工作,并避免担心内存问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28262000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档