目标
- HDFS中資料塊是什麼
- 為什麼HDFS的more資料塊是128M
- HDFS中資料塊的優勢
資料塊是什麼
在Hadoop中,HDFS切割大檔案到小資料塊,這些小資料塊叫做HDFS資料塊。HDFS資料塊是HDFS檔案系統中的最小資料單元,我們不能對資料塊進行控制,例如,塊位置。這些工作都是由Namenode進行操控。
如果HDFS存儲每個檔案作為一個資料塊,那麼HDFS的資料塊會非常大。預設HDFS的資料塊是128M,但是這個值根據你的需求可以進行調整。一個檔案的所有的資料塊大小都是一樣的,除了最後一個資料塊(可能等于或者小于之前的資料塊)。檔案被切割成128M的資料塊,存儲到Hadoop檔案系統。Hadoop應用負責在多個節點中配置設定這些資料塊。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR10dFRUTwZUbl5WNXpVbk1mYsplMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1UDN2ETOwcTM0AjMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
例如,檔案大小是518M,使用預設的128M的資料塊,那麼5個資料塊會建立,前四個資料塊是128M,最後一個資料塊是6M。
為什麼HDFS資料塊是128M
HDFS存儲大的資料集,例如TB或者PB級别的資料。像Linux檔案系統擁有4kB塊大小,如果HDFS的資料塊大小是4kb,那麼将會有許多資料塊在HDFS中,需要很多的中繼資料。管理這麼多資料塊和中繼資料将會帶來很大的壓力。
另一方面,資料塊不能太大,以至于系統必須等待最後一個資料處理單元完成工作。
Hadoop資料塊的優勢
-
簡單的存儲管理
因為資料塊大小固定,很容易計算存儲在磁盤上的資料塊數量
-
存儲大檔案的能力
HDFS能夠存儲大于單個磁盤大小的檔案,因為檔案被切割成HDFS資料塊,分布式在多個節點上。
-
HDFS的容錯能力和高可用
資料塊可以在多個datanode節點上進行複制,是以提供容錯能力和高可用
-
簡單的存儲原理
HDFS資料塊簡化datanodes的存儲,資料塊的中繼資料是由namenode管理,datanode并不需要關心資料塊中繼資料,例如檔案權限等