mapreduce里map数量的大小是由文件大小/分片大小计算得来的。
分片大小又是由maxsize和minsize以及blocksize来决定的,这里总结一个简单易记的方式,就是将上面的三个size进行一个排序(由大到小还是由小到大都可以),位于中间的size就是分片的大小了,比如
mapred.min.split.size设置minSize,mapred.max.split.size设置maxSize,minSize默认为1,maxSize默认为Long.MAX_VALUE
假设我们没有设置min和maxsize的大小,我们只设置blocksize的大小为10M,那么此时分片的大小就是10M,因为它在三个数排序之后的中间位置,这个规律是由公式splitSiz=Math.max(minSize,Math.min(maxSize,blockSize))总结而来