Hadoop系列之HDFS 資料塊

shkstart發表於2022-01-19

HDFS資料塊
要把大檔案儲存在 HDFS上,HDFS 會把大檔案分割成小塊,即我們通常說的資料塊( block ),它是  Hadoop 分散式檔案系統最小的儲存單元,而且我們沒辦法決定指定塊的儲存節點地址,這些 Namenode 會替我們決定。資料塊預設大小是 128MB,比作業系統裡面的塊概念要大很多(作業系統塊大小是 4KB ),我們可以根據實際需求修改 HDFS 塊大小。檔案的所有資料塊大小都是一樣的,除了最後一個,它可能小於塊大小或者剛好等於塊大小。檔案會被分割成若干個 128MB 的小資料塊,再寫入HDFS的。

 假如需要把一個 518MB 的文字檔案 Example.txt 儲存到 HDFS,在塊大小預設情況下,HDFS 將會建立 5 個資料塊,前面4個資料塊大小將是 128MB,最後一個是 6MB,而不是 128MB。這樣會節省不少儲存空間。

HDFS 塊大小為什麼預設是 128MB
HDFS 儲存的資料集一般比較大,資料量級一般是 TB 級別或者 PB 級別的。如果像 Linux 系統那樣每個塊只有 4KB。那麼 HDFS 將會儲存非常多的資料塊,這將導致後設資料暴增,NameNode 管理維護這些後設資料將非常吃力。且很快會成為叢集效能的瓶頸。另一方面,資料塊的大小不能太大,不然檔案系統處理資料延遲會更加嚴重。

HDFS 資料塊的優勢
以下是 HDFS 資料塊的優勢:

方便管理
由於資料塊的固定的,磁碟能夠儲存多少資料塊很容易就可以計算出來。

儲存大檔案
HDFS 可以儲存比單個磁碟容量還大的資料檔案,因為檔案會被劃分成多個 HDFS 資料塊,並儲存在叢集的多個Datanode 磁碟上。

容錯性和高可用
資料塊很容易在 Datanode 之間複製,以便達到資料的容錯性和高可用性。

簡單的 Datanode 儲存機制
HDFS 資料塊的概念簡化了 Datanode 的資料儲存方式。所有塊的後設資料都是在 Namenode 維護的。Datanode 不需要關心塊的後設資料,比如檔案許可權,儲存位置等。

版權宣告:本文為原創文章,轉載請附上原文出處連結及本宣告。下載相關影片學習資料到尚矽谷官方網站。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27721058/viewspace-2853005/,如需轉載,請註明出處,否則將追究法律責任。

相關文章