Hadoop Map reduces 切片原理-切片大小等于块大小

介绍

切片大小:

默认情况下,切片的大小与HDFS的块(Block)大小相等,通常为128MB。如果程序运行在本地,则默认块大小为32MB。

切片机制:

在MapReduce中,切片机制主要由FileInputFormat的getSplits(job)方法完成。这个方法定义了如何将输入分割为InputSplit,不同的输入有不同的分隔逻辑,而分隔得到的每个InputSplit交由不同的Mapper处理,因此该方法的返回值确定了Mapper的数量。

切片时候,剩余的文件大小除以切片大小值大于1.1,则会进行文件切片,否则不切片

设置最小切片大小:你可以通过配置参数mapreduce.input.fileinputformat.split.minsize来设置最小切片大小。

设置最大切片大小:你可以通过配置参数mapreduce.input.fileinputformat.split.maxsize来设置最大切片大小。

源码分析:

在源码中,切片大小由minSize、maxSize、blocksize决定。计算公式为 computeSplitSize(Math.max(minSize,Math.min(maxSize,blocksize)))=blocksize。默认情况下,Mapper的数量是: default_num = total_size / block_size;。


请使用浏览器的分享功能分享到微信等