hadoop - mapreduce 框架基于什么决定是否启动组合器

标签 hadoop mapreduce combiners

根据定义,“Combiner 可以在 mapper 和 reducer 之间的每个键上被调用 0 次、1 次或多次。”

我想知道mapreduce框架是根据什么来决定cobiner启动多少次的。

最佳答案

只是溢出到磁盘的次数。 MapOutputBuffer 填满后进行排序,同时进行合并。

您可以使用参数 io.sort.mbio.sort.spill.percentio.sort 调整溢出到磁盘的数量。 record.percent - 这些也在文档(书籍和在线资源)中进行了解释。

特定组合器运行次数的示例:

0 -> no combiner was defined

1 -> a combiner was defined and the MapOutputBuffer filled up once

>1 -> a combiner was defined and the MapOutputBuffer filled up more than once

请注意,即使 MapOutputBuffer 从未完全填满,此缓冲区也必须在映射阶段结束时刷新,从而触发组合器至少运行一次(如果已定义)。

关于hadoop - mapreduce 框架基于什么决定是否启动组合器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17160852/

相关文章:

file - 多个小文件作为 MapReduce 的输入

mysql - 截断命令(Hive 与 SQL)

哈多普。将结果缩减为单个值

hadoop - “Combiner"mapreduce 作业中的类

java - 映射器输出在组合器中加倍

php - 将数组条目与每个其他条目组合

hadoop - 如何将数据从静态网站导入HDFS?

hadoop - 您对Hadoop的QA环境是什么?

hadoop - 将输入拆分到 hadoop 中的 reducer

hadoop - 请帮忙,Hadoop中的Shuffle和Sorting的必要性是什么?