组合器适用的用例和组合器不适用的用例有哪些。我知道组合器的功能,但我想了解组合器有意义的不同用例。Apache hadoop组合器
回答
源:Hadoop的明确指导:
运行组合器功能使得更紧凑的地图输出,所以有较少的数据写入到本地磁盘和转移到减速机。
如果只有一个或两个溢出,地图输出大小的潜在减少不值得调用组合器的开销,所以它不会再为该地图输出运行。
什么是溢出:每个map任务都有一个循环的内存缓冲区,它将输出写入。当缓冲区的内容达到特定的阈值大小(80%)时,后台线程将开始将内容溢出到磁盘。
如果组合器符合标准(交换和关联),IMO总是运行组合器。 Hadoop框架将决定是否运行组合器(基于地图输出大小/没有溢出),因此您不必担心性能下降。
普通地图输出字数例如在处理文件以下是
file1的:
这是一本书
这是一个书架
地图O/P:
这个1
是1
a 1
book 1
th是1
是1
1个
书架为了避免这样的在网络中的庞大的数据传输1
现在,组合器被使用,这是一种正常减速码,因此,如果我们将自定义写入组合器的地图O/p将是:
此1,1
是1,1-
1,1-
书1
书架1
这样减少了网络中数据传输到reducer节点。
2.关于降低性能:现在如果在文件中的总线是非常大的,而不是避免大的数据传送组合是有用的,但如果其仅总线是2,比组合器将添加上述示例它的执行开销。
合并器主要用于减少Reducers需要处理的数据量。他们被称为迷你减速器。
一个用例,以更好地解释:
输出从映射器输入到减速在没有合的
<What,1> <do,1> <you,1> <mean,1> <by,1> <Object,1>
<What,1> <do,1> <you,1> <know,1> <about,1> <Java,1>
<What,1> <is,1> <Java,1> <Virtual,1> <Machine,1>
<How,1> <Java,1> <enabled,1> <High,1> <Performance,1>
输出从映射器 - >合,其输入到减速器与组合器功能
<What,1,1,1> <do,1,1> <you,1,1> <mean,1> <by,1> <Object,1>
<know,1> <about,1> <Java,1,1,1>
<is,1> <Virtual,1> <Machine,1>
<How,1> <enabled,1> <High,1> <Performance,1>
即使在这个小例子中,您可以明显看到使用组合器的数据传输减少量。想象一下具有万亿字节数据的万字的情景,您可以看到巨大的网络带宽节省。
何时使用组合器?
您可以使用Combiner作为字数统计的例子。
组合器只能在是可交换 (A·B = b.a)和关联的功能可以使用(一个。(b.c)=(A·B).c)中。
当你不应该使用Combiner?
简单。如果上述情况无效。例如将字数计算示例替换为从员工列表中计算平均(平均)年龄。如果你将所有的值从Mapper传递给Reducer,你会得到不同的年龄平均值(平均值)。如果您从单个映射器发送数据子集,则会得到不同的年龄平均值。
合和减速机之间的差异,可以检查here和
当不使用合成器可以检查here
- 1. Apache Camel聚合器与onCompletion的组合
- 2. hadoop-mapreduce reducer-组合器输入
- 3. 如何禁用hadoop组合器?
- 4. HADOOP组合器操作功能
- 5. 在hadoop中禁用组合器
- 6. 具有聚合器功能的Hadoop组合器
- 7. Hadoop/Hbase:java.lang.NoClassDefFoundError:org/apache/hadoop/hbase/HBaseConfiguration
- 8. Apache Hadoop - 节点机器不一致?
- 9. java.lang.NoClassDefFoundError:org/apache/hadoop/hdfs/BenchmarkThroughput
- 10. MapReduce Apache Hadoop技术
- 11. Hadoop将数据从映射器减少到组合器
- 12. Hadoop中没有减速器的组合器
- 13. 升级\将Apache Hadoop 1.x迁移到Apache Hadoop 2.x
- 14. 在Apache Hadoop和Cloudera Hadoop中安装Apache apache sqoop有什么区别?
- 15. apache graphx合并/组合多个图
- 16. Hadoop组合器:在字数mapreduce程序中使用与组合器相同的缩减器代码?
- 17. 在Hadoop中选择不同的记录并使用组合器
- 18. 如何在Hadoop MapReduce中实现组合器?
- 19. 当Hadoop MapReduce运行一个组合器时的确切来源
- 20. 在hadoop streaming mapreduce中使用组合器(使用mrjob)
- 21. 组合器应该在Hadoop中继承(或扩展)哪个类?
- 22. apache hadoop版本2.0与0.23
- 23. 不能在Apache Hadoop的2.7.3
- 24. Apache Storm与Hadoop相比
- 25. Apache Hadoop字数错误
- 26. Twitter Storm v/s Apache Hadoop
- 27. Apache Pig和Hadoop的实现
- 28. httpfs for hadoop apache下载
- 29. MultipleOutputs了Apache的Hadoop 0.20.203
- 30. java.lang.NoClassDefFoundError:org/apache/hadoop/security/authorize/RefreshAuthorizationPolicyProtocol
看一看这个问题:http://stackoverflow.com/questions/33406566/combiner -inplementation和内部加工/ 33408776#33408776 –