参考:
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(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)。