1

我浏览了很多关于 stackoverflow 的博客以及 apache wiki,以了解映射器在 Hadoop 中的设置方式。我还浏览了 [ hadoop - 如何确定总映射器[this] post。有人说它基于 InputFormat,一些帖子说它基于输入文件 id 分成的块数。

我对默认设置有些困惑。

当我运行 wordcount 示例时,我看到映射器低至 2。设置中到底发生了什么?还有这篇文章[ http://svn.apache.org/repos/asf/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-examples/src/main/java/org/apache/hadoop/examples/ QuasiMonteCarlo.java] [示例程序]。在这里,他们根据用户输入设置映射器。如何手动进行此设置?

我非常感谢您对映射器如何工作的帮助和理解。

提前致谢

4

1 回答 1

0

使用 java 系统属性mapred.min.split.sizemapred.max.split.size引导 Hadoop 使用您想要的拆分大小。这并不总是有效 - 特别是当您的数据采用不可拆分的压缩格式时(例如 gz,但 bzip2 是可拆分的)。

因此,如果您想要更多映射器,请使用较小的拆分大小。简单的!

(根据要求更新)现在这不适用于许多小文件,特别是您最终会得到比您想要的更多的映射器。对于这种情况,请使用CombineFileInputFormat... 在 Scalding 中,此 SO 解释:Create Scalding Source like TextLine that combine multiple files into single mapper

于 2014-07-17T17:33:24.910 回答