HDFS块中的数据是如何存储的?
How data in an HDFS block is stored?
我正在阅读有关 HDFS 的内容,想知道块中的数据是否有特定的排列格式。
假设有一个265MB的文件复制到Hadoop集群,HDFS块大小为64MB。因此文件被分成 5 个部分——64 MB + 64 MB + 64 MB + 64 MB + 9 MB,并分布在数据节点之间。正确吗?
- 我怀疑存储数据的 64 MB 块中是否有任何格式?
- 如果块内有任何format/structure存储数据,那么存储的数据应该小于64MB,因为数据structure/header等,本身可能需要一些space.
- 由于 HDFS 数据节点是一个逻辑文件系统(它运行在 linux 之上,HDFS 没有单独的分区),所有块都应作为文件存储在 linux 分区中.正确吗?
- 如何知道 linux 上实际存储 64 MB HDFS 块的文件的名称?
任何人,如果能回答这些doubts/questions,那就太好了。提前致谢。
此致,
(*维普尔)();
- 不,数据只是在 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
我正在阅读有关 HDFS 的内容,想知道块中的数据是否有特定的排列格式。
假设有一个265MB的文件复制到Hadoop集群,HDFS块大小为64MB。因此文件被分成 5 个部分——64 MB + 64 MB + 64 MB + 64 MB + 9 MB,并分布在数据节点之间。正确吗?
- 我怀疑存储数据的 64 MB 块中是否有任何格式?
- 如果块内有任何format/structure存储数据,那么存储的数据应该小于64MB,因为数据structure/header等,本身可能需要一些space.
- 由于 HDFS 数据节点是一个逻辑文件系统(它运行在 linux 之上,HDFS 没有单独的分区),所有块都应作为文件存储在 linux 分区中.正确吗?
- 如何知道 linux 上实际存储 64 MB HDFS 块的文件的名称?
任何人,如果能回答这些doubts/questions,那就太好了。提前致谢。
此致,
(*维普尔)();
- 不,数据只是在 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