数据块是一组或几组按顺序连续排列在一起的记录,是主存储器与输入设备、输出设备或外存储器之间进行传输的数据单位。
在传统的块存储介质中,块是读写的最小数据单位 (扇区)
传统文件系统基于存储块进行操作
为了节省文件分配表空间,会对物理存进行储块整般合,一般大小为4096字节
HDFS也使用了块的概念,但是默认大小设为64M字节
可针对每个文件配置,由客户端指定
每个块有一个自己的全局ID
HDFS将一个文件分为一个或数个块来存储
每个块是一个独立的存储单位
以块为单位在集群服务器上分配存储
与传统文件系统不同的是,如果实际数据没有达到块大小,则并不实际占用磁盘空间
如果一个文件是200M,则它会被分为4个块: 64+64+64+8
块的优点:
当一个文件大于集群中任意一个磁盘的时候,文件系统可以充分利用集群中所有的磁盘
管理块使底层的存储子系统相对简单
块更加适合备份,从而为容错和高可用性的实现带来方便
最重要的是,采用块方式,实现了名字与位置的分离,实现了的存储位置的独立性
块的冗余备份
每个块在集群上会存储多份(replica)
默认复制份数为3
可针对每个文件配置,由用户指定
可动态修改
某个块的所有备份都是同一个ID
系统无需记录 “哪些块其实是同一份数据”
系统可以根据机架的配置自动分配备份位置
第一份在集群的某个机架的某台机器上
其他两份在另外的一个机架的两台机器上
此策略是性能与冗余性的平衡
机架信息需要手工配置