天天看點

HDFS的資料塊

目标

  • HDFS中資料塊是什麼
  • 為什麼HDFS的more資料塊是128M
  • HDFS中資料塊的優勢

資料塊是什麼

在Hadoop中,HDFS切割大檔案到小資料塊,這些小資料塊叫做HDFS資料塊。HDFS資料塊是HDFS檔案系統中的最小資料單元,我們不能對資料塊進行控制,例如,塊位置。這些工作都是由Namenode進行操控。

如果HDFS存儲每個檔案作為一個資料塊,那麼HDFS的資料塊會非常大。預設HDFS的資料塊是128M,但是這個值根據你的需求可以進行調整。一個檔案的所有的資料塊大小都是一樣的,除了最後一個資料塊(可能等于或者小于之前的資料塊)。檔案被切割成128M的資料塊,存儲到Hadoop檔案系統。Hadoop應用負責在多個節點中配置設定這些資料塊。

HDFS的資料塊

例如,檔案大小是518M,使用預設的128M的資料塊,那麼5個資料塊會建立,前四個資料塊是128M,最後一個資料塊是6M。

為什麼HDFS資料塊是128M

HDFS存儲大的資料集,例如TB或者PB級别的資料。像Linux檔案系統擁有4kB塊大小,如果HDFS的資料塊大小是4kb,那麼将會有許多資料塊在HDFS中,需要很多的中繼資料。管理這麼多資料塊和中繼資料将會帶來很大的壓力。

另一方面,資料塊不能太大,以至于系統必須等待最後一個資料處理單元完成工作。

Hadoop資料塊的優勢

  • 簡單的存儲管理

    因為資料塊大小固定,很容易計算存儲在磁盤上的資料塊數量

  • 存儲大檔案的能力

    HDFS能夠存儲大于單個磁盤大小的檔案,因為檔案被切割成HDFS資料塊,分布式在多個節點上。

  • HDFS的容錯能力和高可用

    資料塊可以在多個datanode節點上進行複制,是以提供容錯能力和高可用

  • 簡單的存儲原理

    HDFS資料塊簡化datanodes的存儲,資料塊的中繼資料是由namenode管理,datanode并不需要關心資料塊中繼資料,例如檔案權限等

繼續閱讀