FileInputFormat切片机制 VS CombineTextInputFormat切片机制

本文介绍了Hadoop中FileInputFormat的默认切片机制,按照文件内容长度进行切片,切片大小与blockSize相关。而CombineTextInputFormat则能将多个小文件逻辑上归为一个切片,优化小文件问题。此外,还提到了InputFormat接口的一些常见实现类,如TextInputFormat、KeyValueInputFormat等。
摘要由CSDN通过智能技术生成

1.FileInputFormat切片机制

默认切片机制

  • 按照文件内容长度进行切片
  • 默认大小等于block大小
  • 切片时不考虑数据集整体性,而是逐个针对每个文件单独切片

举例:两个文件

File1.txt    200M
file2.txt    20M

切片信息如下:

File1.txt.split1—— 0~128
File1.txt.split2—— 128-200
File2.txt.split1—— 0-20 

切片参数配置

  • 切片的计算逻辑:Math.max(minSize, Math.min(maxSize, blockSize))
  • 参数设置
mapreduce.input.fileinput.format.split.minsize=1                默认值为1
mapreduce.input.fileinput.format.split.maxsize=Long.MAXValue    默认值Long.MAXValue

FileInputFormat.setMinInputSplitSize(job, 512*1024*1024L);              // 最小输入 512M
FileInputFormat.setMaxInputSplitSize(job, 1*1024*1024*1024L);           // 最大输入 1G

因此,默认情况下,切片大小为blockSize

  • 当minsize < maxsize < blockSize时,则切片大小为maxsize
  • 当blockSi
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值