分享

关于mapreduce中,map个数的确认

string2020 发表于 2013-12-17 09:40:23 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 4 12250
提示: 作者被禁止或删除 内容自动屏蔽

已有(5)人评论

跳转到指定楼层
lzw 发表于 2013-12-17 09:43:10
我记得是这样如果你不在mapred-site.xml配置的话,并且代码中没有设置map个数,会走默认的设置,如果代码设置则走代码的。你说的这个逻辑貌似没有见过。我可以下去研究研究。
回复

使用道具 举报

string2020 发表于 2013-12-17 11:16:05
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

lzw 发表于 2013-12-17 11:21:21
string2020 发表于 2013-12-17 11:16
如果全部用系统默认的配置,

假如此时,所有文件的大小都小于64M,则,有多少个文件,就有多少个map数 ...

这个我有不记得了,我下面看一下,再发给你。
回复

使用道具 举报

hyj 发表于 2013-12-17 12:55:00
本帖最后由 pig2 于 2014-3-9 10:01 编辑

你可以看一下这篇文章。
如何确定 Hadoop map和reduce的个数--map和reduce数量之间的关系是什么?

Mapper的数量在默认情况下不可直接控制干预,因为Mapper的数量由输入的大小和个数决定。
回复

使用道具 举报

lzw 发表于 2013-12-17 21:29:59
上面的链接帖子说的很清楚,一般情况是通过配置来确定mapper个数,从而降低hadoop系统崩溃情况,
1 输入文件size巨大,但不是小文件这种情况可以通过增大每个mapper的input size,即增大minSize或者增大blockSize来减少所需的mapper的数量。增大blockSize通常不可行,因为当HDFS被hadoop namenode -format之后,blockSize就已经确定了(由格式化时dfs.block.size决定),如果要更改blockSize,需要重新格式化HDFS,这样当然会丢失已有的数据。所以通常情况下只能通过增大minSize,即增大mapred.min.split.size的值。
2 输入文件数量巨大,且都是小文件所谓小文件,就是单个文件的size小于blockSize。这种情况通过增大mapred.min.split.size不可行,需要使用FileInputFormat衍生的CombineFileInputFormat将多个input path合并成一个InputSplit送给mapper处理,从而减少mapper的数量。具体细节稍后会更新并展开。
3.2 增加Map-Reduce job 启动时创建的Mapper数量增加mapper的数量,可以通过减小每个mapper的输入做到,即减小blockSize或者减小mapred.min.split.size的值。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条