按照定义,“在映射器和化简器之间的每个键上,合成器可能被称为0、1或多次。”
我想知道mapreduce框架在什么基础上决定将启动cobiner多少次。
最佳答案
只是溢出到磁盘的数量。在MapOutputBuffer
填满后进行排序,同时进行合并。
您可以使用参数io.sort.mb
,io.sort.spill.percent
和io.sort.record.percent
调整溢出到磁盘的数量-这些在文档(书籍和在线资源)中也有介绍。
特定数量的组合器运行的示例:
请注意,即使MapOutputBuffer
从未完全填满,此缓冲区也必须在map阶段的末尾刷新,从而触发组合器至少运行一次(如果已定义)。
关于hadoop - mapreduce框架根据什么基础决定是否启动组合器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17160852/