先来说一说block(数据块),HDFS存储数据在adtanode节点,而datanodo节点里是分为一个个block存数据的。大数据可能一个地方放不下,需要被拆开存放,并且拆开存放有利于数据的读取。HDFS文件系统默认block是文件存储最小单位(64MB或128MB)。HDFS支持文件“一次写入多次读取”,实际应用都是只写入数据一次但却读取一次或多次,并且读取速度应能满足流式读取的需要。
block也有如下优势:
1.支持大规模文件存储
2.简化系统设计
3.适合数据备份
4.集中的存储
5.安全性高
切片(split)是逻辑意义上的split。通常在mapreduce程序或者其它数据处理技术上用到。默认大小为splitsize=128MB。
split与block的对应关系可以是多对一,默认一对一
文件大小为129,一个block大小为128所以需要两个block,129/splitsize=1.007<1.1所以只需要一个split就够了
文件大小为150,一个block大小为128所以需要两个block,150/splitsize=1.17>1.1所以需要两个split
block和切片(split)的区别总结有以下几点:
1.block的划分是物理划分,split是逻辑划分
2.文件不可分割,一个文件一个split
3.文件可分割,才会考虑与hdfs的block的大小有关