HDFS概述(2)————Block塊大小設置
參考:
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裏面添加新文件前,Hadoop在linux上面所占的空間為 464 MB
du -sh /hadoop/hdfs/data/
2. 往hdfs裏面添加大小為2673375 byte(大概2.5 MB)的文件
3. 此時,hadoop在linux上面所占的空間為 467 MB——增加了一個實際文件大小(2.5 MB)的空間,而非一個block size
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
值得註意的是,結果中有一個 ‘1(avg.block size 2673375 B)’的字樣。這裏的 ‘block size‘ 並不是指平常說的文件塊大小(Block Size)—— 後者是一個元數據的概念,相反它反映的是文件的實際大小(file size)。
HDFS概述(2)————Block塊大小設置