按照定义,“在映射器和化简器之间的每个键上,合成器可能被称为0、1或多次。”

我想知道mapreduce框架在什么基础上决定将启动cobiner多少次。

最佳答案

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

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

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



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

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

10-11 07:26