MR避免切分

有些应用程序可能不希望文件被切分, 而是用一个mapper完整处理每一个输入文件,例如检查一个文件中所有记录是否有序,一个简单的方法是顺序扫描每一条记录并且比较后一条记录是否比前一条要小。如果将它实现为一个map任务, 那么只有一个map操作整个文件时, 这个算法才可行。


有两种方法可以保证输入文件不给切分,

A  最简单但是不怎么漂亮( 增加最小分片大小, 将他设置成大于要处理的最大文件大小, 把他设置为 最大值long.MAX_VALUE即可。

B 使用FileInputFormat具体的子类,并且重载 isSplitable方法 把返回值设置为false。

例如一下就是一个不课分割的TextInputFomat


public class NoSplittableTextInputFormat  extends TextInputFormat{


@override

protected boolean isSplitable(JobContext context,Path file){

return false;

}


hadoop权威指南 page=259

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值