Hadoop大数据——MR程序map任务数的规划机制

网友投稿 226 2022-11-24

Hadoop大数据——MR程序map任务数的规划机制

一个inputsplit对应一个map 而inputsplit切片规划是由InputFormat的具体实现子类来实现,就是调用 InputSplits[ ] getSplits() 方法,这个方法的逻辑可以自定义 在默认情况下,由FileInputFormat来实现,它的核心逻辑: 规划切片的大小 long minSize = Math.max(getFormatMinSplitSize(), getMinSplitSize(job)); long maxSize = getMaxSplitSize(job); public static long getMaxSplitSize(JobContext context) { returncontext.getConfiguration().getLong(SPLIT_MAXSIZE, Long.MAX_VALUE); } // mapreduce.input.fileinputformat.split.minsize 配置这个值可以让切片大小>块大小 // mapreduce.input.fileinputformat.split.maxsize 配置这个值可以让切片大小<块大小 long splitSize = computeSplitSize(blockSize, minSize, maxSize); //计算切片大小 protected long computeSplitSize(long blockSize, long minSize,long maxSize) { return Math.max(minSize, Math.min(maxSize, blockSize)); } (2)构造切片信息对象,并放入InputSplits[ ]中 splits.add(makeSplit(path,length-bytesRemaining,splitSize,blkLocations[blkIndex].getHosts())); 注:FileInputFormat的切片机制是针对一个一个的文件进行,因此,如果文件太小,则整个文件划分为一个切片 如果一个大文件被切成若干个切片后,剩下的长度如果在blocksize的1.1倍大小以内,则将剩下的长度全部规划为一个切片

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于半双工机制实现3线制双向SPI模块的设计与应用
下一篇:关于spring5的那些事:@Indexed 解密
相关文章

 发表评论

暂时没有评论,来抢沙发吧~