#hadoop1.x是默认每个块大小64GB,而hadoop2.x默认每个块大小128GB。系统默认3个快。
定义(1);block;
HDFS存储数据在DataNode节点,block就是DataNode里存储数据的一个一个单位。当我们把文件上传到HDFS时,文件会被分块,这个是真实物理上的定义。因为,读磁盘需要时间,随机读会造成查找目录的时间比真正读出磁盘内容的时间占比过大。读取当前数据时候,很大可能会读取前后附近的数据。所以直接读出一大片数据,一整块数据读到内存里只要查找目录一次,还高效。而且大文件数据可能一个地方放不下,需要被拆开放多个电脑存储。所以block的的出现是很有现实意义的。
定义(2);split;
Split是逻辑意义上的定义。split是把block切分而成的虚拟上的的定义,是MapReduce里的概念。输入分片(Input Split):在进行map计算之前,mapreduce会根据输入文件计算输入分片(input split),每个输入分片(input split)针对一个map任务,输入分片(input split)存储的并非数据本身,而是一个分片长度和一个记录数据的位置的数组。通常一个split就是一个block这样做的好处是使得Map可以在存储有当前数据的节点上运行本地的任务,而不需要通过网络进行跨节点的任务调度。
总结
1. split是MapReduce里的切片的概念,split是虚拟切片 ;而block是hdfs中切块的大小,block是物理切块;
2. split大小在默认下和block切块大小一致,是为了MapReduce处理的时候减少由于split和block之间大小不一致,可能会延迟网络之间的传输。