有些场景,需要我们对map的个数进行控制.比如说:我的集群中的节点多,而且计算复杂,这时候,我需要将整体的并发量提高上去,这时候就需要进行控制map的个数了.
如何控制呢?我们先引入一个公式
splitsize = Math.max(minSize, Math.min(maxSize, blockSize));
这个里面的splitsize就是每个split的大小,我们只要控制这个大小即可,这个值变小,则map数量会上升,反之亦然
minSize是由 配置项mapreduce.input.fileinputformat.split.minsize 默认值为1 控制的
maxsize是由配置项mapreduce.input.fileinputformat.split.maxsize 默认值为long的最大值
blocksize就没啥好说的了.
所以只需要控制着几个配置项 就能达到控制map数量问题
具体源码可以参考 fileinputformat类