这通常是对hdfs的误解—块大小更多地是关于单个文件的拆分/分区方式,而不是文件系统的某个保留部分。 在这些方案背后,每个块都作为普通文件(以及相关的校验和)存储在datanodes底层文件系统中。如果您查看磁盘上的数据节点文件夹,您应该能够找到该文件(如果您知道该文件的块id和数据节点分配—您可以从namenode web ui中发现)。 回到你的问题上来,块大小为16mb/32mb/128mb/512mb/1g/2g的1mb文件(你知道的)在数据节点磁盘上仍然是1mb文件。块大小和存储在该块中的数据量之间的差异可以由底层文件系统自由使用(通过hdfs或其他方式)。
2条答案
按热度按时间lh80um4z1#
这通常是对hdfs的误解—块大小更多地是关于单个文件的拆分/分区方式,而不是文件系统的某个保留部分。
在这些方案背后,每个块都作为普通文件(以及相关的校验和)存储在datanodes底层文件系统中。如果您查看磁盘上的数据节点文件夹,您应该能够找到该文件(如果您知道该文件的块id和数据节点分配—您可以从namenode web ui中发现)。
回到你的问题上来,块大小为16mb/32mb/128mb/512mb/1g/2g的1mb文件(你知道的)在数据节点磁盘上仍然是1mb文件。块大小和存储在该块中的数据量之间的差异可以由底层文件系统自由使用(通过hdfs或其他方式)。
cnjp1d6j2#
hadoop块大小是hadoop存储的概念。每次在hadoop中存储文件时,它都会被划分为块大小,并基于复制因子和数据位置将其分布在集群中。
关于细节,你可以在这里找到我的答案
小文件和hdfs块