![Hadoop+Spark大数据技术(微课版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/911/53255911/b_53255911.jpg)
上QQ阅读APP看书,第一时间看更新
2.2.2 数据块
在传统的文件系统中,为了提高磁盘的读写效率,一般以数据块为单位,而不是以字节为单位,数据块是磁盘读写的最小单位。文件系统的数据块大小通常是几千字节,而磁盘的数据块大小通常是512B。
HDFS同样有数据块的概念,但它是一个更大的单元,Hadoop 2.x版本默认的数据块大小是128MB。如同单一磁盘的文件系统中的文件,HDFS中的文件被分解成数据块大小的若干数据块,独立保存在各单元中。与单一磁盘的文件系统中的文件不同的是,如果HDFS中的文件比一个数据块小,该文件不会占用该数据块的整个存储空间。例如,一个1MB的文件存储在128MB的数据块中,它只使用数据块的1MB的磁盘空间而不是128MB的磁盘空间。如果没有特别指明,本书的数据块指的均是HDFS的数据块。
分布式文件系统使用数据块有以下两个好处。
(1)文件存储不受单一磁盘大小的限制。不需要文件的所有数据块保存在同一个磁盘上,它们可以使用集群上的若干个磁盘共同存储。
(2)简化了存储系统的存储过程。由于数据块大小固定,存储系统根据数据块大小可以简单计算出在给定的磁盘上可以存储多少个数据块,从而简化了存储管理。数据块适合通过复制方式提高容错性和可用性,如将每一个数据块都复制到一些物理分离的机器(通常是3个)上,可防止数据块和磁盘毁坏等。