linux—hdfs块中的数据是如何存储的?

kxe2p93d  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(384)

我正在读关于hdfs的书,我想知道是否有任何特定的格式可以用来排列数据块中的数据。
假设有一个265mb的文件被复制到hadoop集群,hdfs块大小为64mb。因此,该文件分为5个部分—64MB+64MB+64MB+64MB+9MB,并分布在数据节点之间。对的?
我有一个疑问,是否有任何格式在64兆块内的数据存储?
如果有任何格式/结构将数据存储在块中,则存储的数据应小于64 mb,因为数据结构/头等本身可能占用一些空间。
由于hdfs数据节点是一个逻辑文件系统(它运行在linux之上,hdfs没有单独的分区),所以所有的块都应该作为文件存储在linux分区中。对的?
如何知道linux上实际存储64mbhdfs块的文件名?
任何人,如果能回答这些疑问/问题,那就太好了。提前谢谢。
当做,
(*毒蛇)();

dphi5xsq

dphi5xsq1#

不,数据只是在64mb边界上分割。元数据存储在一个单独的小文件中,位于namenode上
不,它正是您指定的大小,并且数据在64mb的精确边界上拆分。如果您有5个部分-64 mb+64 mb+64 mb+64 mb+9 mb,那么最后一个文件将是9mb,其他所有文件都是64mb
是的,这些块存储为一个文件,每个块表示为一个单独的文件,少量元数据存储在一个单独的文件中 hdfs fsck / -files -blocks -locations 以下是如何以128mb块大小存储块文件的示例:

-rw-r--r--. 1 hdfs hadoop 134217728 Jan 12 09:17 blk_1073741825
-rw-r--r--. 1 hdfs hadoop   1048583 Jan 12 09:17 blk_1073741825_1001.meta
-rw-r--r--. 1 hdfs hadoop 134217728 Jan 12 09:18 blk_1073741826
-rw-r--r--. 1 hdfs hadoop   1048583 Jan 12 09:18 blk_1073741826_1002.meta
-rw-r--r--. 1 hdfs hadoop 134217728 Jan 12 09:18 blk_1073741827
-rw-r--r--. 1 hdfs hadoop   1048583 Jan 12 09:18 blk_1073741827_1003.meta
-rw-r--r--. 1 hdfs hadoop 134217728 Jan 12 09:18 blk_1073741828
-rw-r--r--. 1 hdfs hadoop   1048583 Jan 12 09:18 blk_1073741828_1004.meta
-rw-r--r--. 1 hdfs hadoop 134217728 Jan 12 09:19 blk_1073741829
-rw-r--r--. 1 hdfs hadoop   1048583 Jan 12 09:19 blk_1073741829_1005.meta
-rw-r--r--. 1 hdfs hadoop 134217728 Jan 12 09:19 blk_1073741830
-rw-r--r--. 1 hdfs hadoop   1048583 Jan 12 09:19 blk_1073741830_1006.meta
-rw-r--r--. 1 hdfs hadoop  87776064 Jan 12 09:19 blk_1073741831
-rw-r--r--. 1 hdfs hadoop    685759 Jan 12 09:19 blk_1073741831_1007.meta

相关问题