簡體   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