分享

如何让hadoop按文件分片

Looo 发表于 2015-7-30 15:42:33 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 25387
文件的大小都不一样 不能按照大小去分片 怎么办。。

已有(3)人评论

跳转到指定楼层
xuanxufeng 发表于 2015-7-30 15:59:27
楼主多虑了,分片是hadoop框架考虑的事情。
关于下面分片,仅供参考,希望对楼主有所帮助:


hadoop的作业在提交过程中,需要把具体的输入进行分片。具体的分片细节由InputSplitFormat指定。分片的规则为  FileInputFormat.class中的getSplits()方法指定:
long splitSize = computeSplitSize(goalSize, minSize, blockSize);
computeSplitSize:
Math.max(minSize, Math.min(goalSize, blockSize));
其中goalSize为“InputFile大小”/“我们在配置文件中定义的mapred.map.tasks”值,minsize为mapred.min.split.size,blockSize为64,所以,这个算式为取分片大小不大于block,并且不小于在mapred.min.split.size配置中定义的最小Size。
当某个分块分成均等的若干分片时,会有最后一个分片大小小于定义的分片大小,则该分片独立成为一个分片。



Hadoop的分块与分片
http://www.aboutyun.com/thread-6248-1-1.html



回复

使用道具 举报

非卡不尔 发表于 2015-7-31 14:03:15
2楼说的是对的,要是真是按文件分配,那就乱套了
回复

使用道具 举报

acelearn 发表于 2017-4-11 10:47:11
二楼回答正解,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条