1. 程式人生 > >HDFS概述(2)————Block塊大小設置

HDFS概述(2)————Block塊大小設置

href line rgb eno white -- 分享 pad linu

參考:

HDFS概述(4)————HDFS權限

HDFS概述(3)————HDFS Federation

HDFS概述(2)————Block塊大小設置

HDFS概述(1)————HDFS架構

問題

Q: 一個常被問到的一個問題是: 如果一個HDFS上的文件大小(file size) 小於塊大小(block size) ,那麽HDFS會實際占用Linux file system的多大空間?

A: 答案是實際的文件大小,而非一個塊的大小。


以下內容轉自:

http://blog.csdn.net/samhacker/article/details/23089157?utm_source=tuicool&utm_medium=referral

http://snglw.blog.51cto.com/5832405/1643587


實驗:

------------------------------------------------------------------------

1. 往hdfs裏面添加新文件前,Hadooplinux上面所占的空間為 464 MB

du -sh /hadoop/hdfs/data/

2. 往hdfs裏面添加大小為2673375 byte(大概2.5 MB)的文件

3. 此時,hadoop在linux上面所占的空間為 467 MB——增加了一個實際文件大小(2.5 MB)的空間,而非一個block size

(128 MB)

du -sh /hadoop/hdfs/data/

4. 使用hadoop dfs -stat查看文件信息:

技術分享

這裏就很清楚地反映出: 文件的實際大小(file size)是2673375 byte, 但它的block size是128 MB。

5. 通過NameNode的web console來查看文件信息:

技術分享

結果是一樣的: 文件的實際大小(file size)是2673375 byte, 但它的block size是128 MB。

6. 不過使用‘hadoop fsck’查看文件信息,看出了一些不一樣的內容—— ‘1(avg.block size

2673375 B)’:

技術分享

值得註意的是,結果中有一個 ‘1(avg.block size 2673375 B)’的字樣。這裏的 ‘block size‘ 並不是指平常說的文件塊大小(Block Size)—— 後者是一個元數據的概念,相反它反映的是文件的實際大小(file size)。


HDFS概述(2)————Block塊大小設置