如何在HDFS中存储小文件

时间:2013-11-08 08:42:16

标签: hadoop

在hadoop权威指南中:

存储块大小为128 MB的1 MB文件使用1 MB磁盘空间,而不是128 MB

这是什么意思? 它在128MB的块中使用1MB的大小或者使用1MB并且其他文件可以自由地占用127MB吗?

2 个答案:

答案 0 :(得分:3)

这通常是对HDFS的误解 - 块大小更多地是关于如何拆分/分区单个文件,而不是关于文件系统的某些保留部分。

在方案的后面,每个块作为普通文件(以及相关的校验和)存储在DataNodes底层文件系统中。如果查看磁盘上的数据节点文件夹,您应该能够找到该文件(如果您知道文件的块ID和数据节点分配 - 您可以从NameNode Web UI中找到它)。

回到你的问题,一个块大小为16MB / 32MB / 128MB / 512MB / 1G / 2G(你明白了)的1MB文件仍然只是数据节点磁盘上的1MB文件。然后,块大小与该块中存储的数据量之间的差异可供底层文件系统在其认为合适时使用(通过HDFS或其他方式)。

答案 1 :(得分:0)

Hadoop块大小是Hadoop存储概念。每次当您在Hadoop中存储文件时,它将分为块大小,并根据复制因子和数据位置将其分布在群集上。

有关详细信息,请在此处找到我的答案

Small files and HDFS blocks