hadoop—如何在hdfs中存储小文件

toiithl6  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(342)

在hadoop权威指南中:
块大小为128 mb的1 mb文件使用1 mb磁盘空间,而不是128 mb。
这是什么意思?它是在128mb的数据块中使用1mb大小,还是在使用1mb时,其他文件可以自由占用127mb?

lh80um4z

lh80um4z1#

这通常是对hdfs的误解—块大小更多地是关于单个文件的拆分/分区方式,而不是文件系统的某个保留部分。
在这些方案背后,每个块都作为普通文件(以及相关的校验和)存储在datanodes底层文件系统中。如果您查看磁盘上的数据节点文件夹,您应该能够找到该文件(如果您知道该文件的块id和数据节点分配—您可以从namenode web ui中发现)。
回到你的问题上来,块大小为16mb/32mb/128mb/512mb/1g/2g的1mb文件(你知道的)在数据节点磁盘上仍然是1mb文件。块大小和存储在该块中的数据量之间的差异可以由底层文件系统自由使用(通过hdfs或其他方式)。

cnjp1d6j

cnjp1d6j2#

hadoop块大小是hadoop存储的概念。每次在hadoop中存储文件时,它都会被划分为块大小,并基于复制因子和数据位置将其分布在集群中。
关于细节,你可以在这里找到我的答案
小文件和hdfs块

相关问题