Hadoop hdfs切片计算方式

HDFS的block是逻辑上的数据块.Hadoop2.0中每一块默认大小128MB,实际存储过程中block大小小于等128MB,它是以文件为存储对象.如一200MB大小文件,分两个数据块128MB+72MB  这里的两个块大实际小分别是128MB和72MB

算法分析: 

getFormatMinSplitSize() = 1   //最小切片值,默认为1

max(minSize, min(maxSize,blockSize))    //取minSize, min()之间的最大值

long maxSize = getMaxSplitSize(job);

 

min(maxSize,blockSize)           //取maxSize,blockSize之间的最小值

long minSize = Math.max(getFormatMinSplitSize(), getMinSplitSize(job));

 

blockSize=128MB          //默认blockSize为128MB

//得到block大小
    long blockSize = file.getBlockSize();

 

所以增加切片大小有要调整 min(maxSize,blockSize)中maxSize值

减小切片大小调整minSize值.

具体两个方法如下:

FileInputFormat.setMaxInputSplitSize(job, size);

FileInputFormat.setMinInputSplitSize(job, size);

//判断是否可切割
    根据CompressionCodec 判断是否为压缩文件(CompressionCodec ==null),如果不是,返回true,否则判断压缩文件是否可切割

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值