2.4.1学习之如何确定Mapper数量(2)

从该代码并结合第一部分的分析可以得知,InputSplit的大小取决于dfs.blocksiz、mapreduce.input.fileinputformat.split.minsize、mapreduce.input.fileinputformat.split.maxsize和所使用的输入格式。在输入格式为TextInputFormat的情况下,且不修改InputSplit的最大值和最小值的情况,InputSplit的最终值为dfs.blocksize的值。

变量SPLIT_SLOP的值为1.1,决定了当剩余文件大小多大时停止按照变量splitSize分割文件。根据代码可知,当剩余文件小于等于1.1倍splitSize时,将把剩余的文件做为一个InputSplit,即最后一个InputSplit的大小最大为1.1倍splitSize。

总结

本文分析了在输入格式为默认的TextInputFormat的情况,如何确定mapper的数量。在不修改源代码的情况下(修改输入格式的InputSplit下限),程序员可以通过设置dfs.blocksiz、mapreduce.input.fileinputformat.split.minsize、mapreduce.input.fileinputformat.split.maxsize参数的值设置InputSplit的大小来影响InputSplit的数量,进而决定mapper的数量。当输入为其它格式时,处理逻辑又不相同了,比如当输入格式为DBInputFormat时,会根据输入表的行数(记录数)决定mapper的数量,更多细节可以参考源代码。

CentOS安装和配置Hadoop2.2.0 

Ubuntu 13.04上搭建Hadoop环境

Ubuntu 12.10 +Hadoop 1.2.1版本集群配置

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)

Ubuntu下Hadoop环境的配置

单机版搭建Hadoop环境图文教程详解

搭建Hadoop环境(在Winodws环境下用虚拟机虚拟两个Ubuntu系统进行搭建)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/80a3db725d6f57fdd08b103387650ecc.html