一、FileInputFormat类的输入分片
1.1 map任务个数等于split个数
在hadoop当中,map任务的个数等于split(分片)的个数,一个split对应一个map。
当文件小于split的大小时,一个文件对应一个split;
当文件大小超过split时,该文件将被切分成多个split,文件大小除以split得到split个数。
1.2 split大小的设置
max(minimumSize, min(maximumSize, blockSize))
默认情况下 minimumSize < blockSize < maximumSize
其中minimumSize默认为1,maximumSize默认为Long.MAX_VALUE(长整型的最大数)。
至于如何通过配置文件来设置split的可以去参考一下其他博客,这里主要讲一下如何通过代码设置split大小。
Configuration conf = new Configuration();
conf.setLong("mapred.min.split.size", 10485760);//按字节大小
conf.setLong("mapred.max.split.size", 10485760);
按此代码设置之后,将通过max(minimumSize, min(maximumSize, blockSize))
来判断split的大小。