【发布时间】:2014-09-16 22:34:01
【问题描述】:
据我了解,即使我们可以设置 reducer 的数量,我们也无法在 MR 作业中设置映射器的数量。 \ref{ how to limit the number of mappers}
作为一个概念,我不明白为什么我们不能有预定数量的映射器并将大块的文本文件提供给它们。
【问题讨论】:
据我了解,即使我们可以设置 reducer 的数量,我们也无法在 MR 作业中设置映射器的数量。 \ref{ how to limit the number of mappers}
作为一个概念,我不明白为什么我们不能有预定数量的映射器并将大块的文本文件提供给它们。
【问题讨论】:
为了优化平衡性能和工作负载分布,框架根据输入拆分的数量确定映射器的数量。
Apache hadoop wiki 链接在这里http://wiki.apache.org/hadoop/HowManyMapsAndReduces 详细介绍 -
实际上控制地图的数量是微妙的。 mapred.map.tasks 参数只是对 >InputFormat 地图数量的提示。默认的 InputFormat 行为是将总字节数拆分为正确数量的片段。但是,在默认情况下,>输入文件的 DFS 块大小被视为输入拆分的上限。可以通过 mapred.min.split.size 设置拆分大小的下限。因此,如果您期望 10TB 的输入数据和 128MB DFS 块,那么您将 > 最终得到 82k 个地图,除非您的 mapred.map.tasks 更大。最终,InputFormat >确定地图的数量。
【讨论】: