Hadoop

hadoop 切片

2019-11-03  本文已影响0人  spraysss

Hadoop的切片计算是通过调用InputFormat接口的getSplits方法完成的

InputFormat

TextInputFormat切片规则

TextFileInputFormat继承至FileInputFormat,它没有重写FileInputFormatgetSpilt方法,所以,计算切片大小是使用父类FileInputFormatgetSpilt方法。FileInputFormat是一个文件一个文件处理的,每个文件至少切一片,FileInputFormat计算切片大小的相关代码如下:

  long splitSize = computeSplitSize(goalSize, minSize, blockSize);
  protected long computeSplitSize(long blockSize, long minSize,
                                  long maxSize) {
    return Math.max(minSize, Math.min(maxSize, blockSize));
  }

可以看出切片大小splitSize是取minSize,blockSize,maxSize三者的中间值,默认情况下

minSize=1,blockSize=128M,maxSize=Long.MAX_VALUE

所以,默认情况,splitSize=blockSize=128M,其中:

CombineFileInputFormat切片规则

CombineFileInputFormat 切片会合并小文件,可以避免不必要的maptask

上一篇 下一篇

猜你喜欢

热点阅读