看了很多博客,感觉没有一个说的很清楚,所以我来整理一下。
先看一下这个图

输入分片(Input Split):在进行map计算之前,mapreduce会根据输入文件计算输入分片(input split),每个输入分片(input split)针对一个map任务,输入分片(input split)存储的并非数据本身,而是一个分片长度和一个记录数据的位置的数组。
Hadoop 2.x默认的block大小是128MB,Hadoop 1.x默认的block大小是64MB,可以在hdfs-site.xml中设置dfs.block.size,注意单位是byte。
分片大小范围可以在mapred-site.xml中设置,mapred.min.split.size mapred.max.split.size,minSplitSize大小默认为1B,<

MapReduce的输入分片(Input Split)在执行map任务前确定,每个分片对应一个map任务。分片大小由minSplitSize、maxSplitSize和blockSize决定,实际占用空间按文件大小。Hadoop 2.x默认block大小为128MB,1.x为64MB,可通过配置调整。未设置分片范围时,splitSize等于blockSize。小文件在HDFS中仍按实际大小占用空间,块大小作为元数据用于决定文件增长时的split点。
订阅专栏 解锁全文
2687

被折叠的 条评论
为什么被折叠?



