目标
- HDFS中数据块是什么
- 为什么HDFS的more数据块是128M
- HDFS中数据块的优势
数据块是什么
在Hadoop中,HDFS切割大文件到小数据块,这些小数据块叫做HDFS数据块。HDFS数据块是HDFS文件系统中的最小数据单元,我们不能对数据块进行控制,例如,块位置。这些工作都是由Namenode进行操控。
如果HDFS存储每个文件作为一个数据块,那么HDFS的数据块会非常大。默认HDFS的数据块是128M,但是这个值根据你的需求可以进行调整。一个文件的所有的数据块大小都是一样的,除了最后一个数据块(可能等于或者小于之前的数据块)。文件被切割成128M的数据块,存储到Hadoop文件系统。Hadoop应用负责在多个节点中分配这些数据块。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR10dFRUTwZUbl5WNXpVbk1mYsplMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1UDN2ETOwcTM0AjMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
例如,文件大小是518M,使用默认的128M的数据块,那么5个数据块会创建,前四个数据块是128M,最后一个数据块是6M。
为什么HDFS数据块是128M
HDFS存储大的数据集,例如TB或者PB级别的数据。像Linux文件系统拥有4kB块大小,如果HDFS的数据块大小是4kb,那么将会有许多数据块在HDFS中,需要很多的元数据。管理这么多数据块和元数据将会带来很大的压力。
另一方面,数据块不能太大,以至于系统必须等待最后一个数据处理单元完成工作。
Hadoop数据块的优势
-
简单的存储管理
因为数据块大小固定,很容易计算存储在磁盘上的数据块数量
-
存储大文件的能力
HDFS能够存储大于单个磁盘大小的文件,因为文件被切割成HDFS数据块,分布式在多个节点上。
-
HDFS的容错能力和高可用
数据块可以在多个datanode节点上进行复制,因此提供容错能力和高可用
-
简单的存储原理
HDFS数据块简化datanodes的存储,数据块的元数据是由namenode管理,datanode并不需要关心数据块元数据,例如文件权限等