1 .什么是数据块?

在Hadoop中,HDFS将大文件分割成小块,称为数据块。 HDFS数据块是文件系统中最小的数据单位。 我们(客户端和管理员)不能控制块位置。 Namenode决定所有这些事情。

HDFS将每个文件存储为一个数据块。 但是,HDFS中的数据块大小非常大。 HDFS块的默认大小为128MB,您可以根据您的要求进行配置。 文件的所有块除了最后一个块以外大小相同,可以是相同大小或更小。 这些文件被分成128 MB块,然后存储到Hadoop文件系统中。 Hadoop应用程序负责将数据块分布到多个节点上。

HDFS 数据块

现在从上面的例子中,文件大小为518MB,假设我们使用数据块大小为128MB的默认配置。 然后创建5个数据块,前四个块将为128MB,但最后一个数据块只有6MB大小。 从上面的例子可以清楚看出,在HDFS中,每个存储的文件都不应该是配置的块大小128mb,256mb等的精确倍数,因此文件的最后一个块只需要使用足够多的空间。

2.为什么Hadoop中的HDFS数据块大小为128 MB?

我们中的很多人都在考虑这个问题,“为什么HDFS块的大小如此之大?”让我们来理解这一点。

HDFS具有巨大的数据集,即TB级和PB级数据。 因此,如果Linux文件系统的块大小为4 KB,如果我们的HDFS数据块大小为4KB,那么Hadoop HDFS中的数据块数量太多,因此元数据太多。 因此,管理大量的块和元数据将产生巨大的开销和流量,这是我们不想要的。

另一方面,数据块的大小不能太大,以至于系统在最后一个数据处理单元等待很长时间才能完成其工作。

3. Hadoop数据块的优点

以下是HDFS块在Hadoop中的主要优势:

简化存储管理

由于数据块的大小是固定的,因此计算可以存储在磁盘上的数据块的数量非常简单。

能够存储非常大的文件

HDSF可以存储非常大的文件,这些文件甚至可以比单个磁盘的大小更大,因为文件分解成hdfs块并分布在各个节点上。

HDFS的容错和高可用性

块在数据节点之间很容易复制,从而提供HDFS的容错和高可用性。

datanodes的简单存储机制

HDFS块可以简化数据节点的存储。 所有块的元数据由namenode维护。 数据节点不需要关心块元数据,如文件许可等。



关注微信服务号,手机看文章
关注微信服务号,手机看文章