为了了解hadoop中Map器的设置方式,我浏览了很多关于stackoverflow和apachewiki的博客。我还浏览了[hadoop-总Map者是如何决定的[this]帖子。有人说它基于inputformat,也有人说它基于输入文件id划分成的块数。
我对默认设置感到困惑。
当我运行一个wordcount示例时,我看到Map器低至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][示例程序]。在这里,他们根据用户输入设置Map器。如何手动进行此设置?
我真的很感谢一些帮助和了解如何Map工作。
提前谢谢
1条答案
按热度按时间chy5wohz1#
使用java系统属性
mapred.min.split.size
以及mapred.max.split.size
引导hadoop使用所需的拆分大小。这并不总是可行的—尤其是当数据的压缩格式不可拆分时(例如gz,但bzip2是可拆分的)。所以如果你想要更多的Map器,使用更小的分割大小。很简单!
(按要求更新)现在这对许多小文件不起作用,特别是你最终会得到比你想要的更多的Map器。对于这种情况,请使用
CombineFileInputFormat
... 在烫伤中,这说明了:创建烫伤源代码,比如textline,将多个文件合并到单个Map器中