繁体   English   中英

HDFS块中的数据如何存储?

[英]How data in an HDFS block is stored?

我正在阅读有关HDFS的内容,并且想知道是否有任何特定格式来安排块中的数据。

假设有一个265 MB的文件被复制到Hadoop集群,并且HDFS块大小为64 MB。 因此,该文件分为5部分-64 MB + 64 MB + 64 MB + 64 MB + 9 MB,并分布在数据节点之间。 对吗

  1. 我怀疑在存储数据的64 MB块中是否有任何格式?
  2. 如果有任何格式/结构将数据存储在块内,则存储的数据应小于64 MB,因为数据结构/标头等本身可能会占用一些空间。
  3. 由于HDFS数据节点是一个逻辑文件系统(它运行在linux之上,并且没有单独的HDFS分区),因此所有块都应作为文件存储在linux分区中。 对吗
  4. 如何知道Linux上实际存储64 MB HDFS块的文件名?

任何人,如果可以回答这些疑问/问题,那就太好了。 提前致谢。

问候,

(* Vipul)();

  1. 不,数据只是在64MB边界上拆分。 元数据存储在一个单独的小文件中,并存储在Namenode上
  2. 不,它正是您指定的大小,并且数据在64MB的确切边界上分割。 如果您有5个部分-64 MB + 64 MB + 64 MB + 64 MB + 9 MB,那么最后一个文件将是9MB,其他所有文件都是64MB
  3. 是的,这些块存储为文件,每个块表示为一个单独的文件,少量元数据存储在一个单独的文件中
  4. 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM