2014-02-09 84 views

回答

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