Hadoop输入拆分(MapV1)

时间:2014-02-09 18:27:10

标签: hdfs

问题:什么是输入拆分

  • 如何在MapReduce v1中计算输入分割?
  • 输入Split是否与HDFS块大小相同?

1 个答案:

答案 0 :(得分:1)

每个输入分割大小通常等于HDFS块大小。例如,对于1GB大小的文件,如果块大小为64MB,则将有16个输入拆分。但是,拆分大小可以配置为小于/大于HDFS块大小。对于一般情况,输入拆分的计算是使用FileInputFormat完成的。

输入分割大小的计算在InputFileFormat中完成:

Math.max("mapred.min.split.size", Math.min("mapred.max.split.size", blockSize));

一些例子:

mapred.min.split.size   mapred.max.split.size   dfs.block.size  Split Size
1 (default)             Long.MAX_VALUE(default) 64MB(Default)   64MB
1 (default)             Long.MAX_VALUE(default) 128MB           128MB
128MB                   Long.MAX_VALUE(default) 64MB            128MB
1 (default)             32MB                    64MB            32MB

有关详细说明,您可以查看here