整理下,基本分两个方式:
一、对于大量大文件(大于block块设置的大小)
增大minSize,即增大mapred.min.split.size的值,原因:splitsize=max(minisize,min(maxsize,blocksize)),blocksize一般不会做修改.
在没有设置minisize,maxsize时,splitsize取blocksize.
二、对于大量小文件(小于block块设置的大小)
这种情况通过增大mapred.min.split.size不可行,
需要使用FileInputFormat衍生的CombineFileInputFormat将多个input path合并成一个InputSplit送给mapper处理,从而减少mapper的数量