2015-11-04 99 views

回答

1

Hadoop文件系统通过将数据副本放置到多个节点来提供重标记存储。副本的数量是复制因素,通常它是一个复制因子。

命令hdfs dfs -du /显示空间消耗您的数据而不复制。

命令hdfs dfsadmin -report(已使用行DFS)显示实际的磁盘使用情况,同时考虑到数据复制。因此,从dfs -ud命令获得的数字应该是几倍。

+2

在以后的hadoop版本中输出“hdfs dfs -du”(大小不带和带复制) – facha

0

HDFS存储工作原理简述:

Let say replication factor = 3 (default) 
Data file size = 10GB (i.e xyz.log) 
HDFS will take 10x3 = 30GB to store that file 

根据您使用命令的类型,你将获得由HDFS(10GB VS 30GB)占据

空间不同的值如果您在最新版本的Hadoop,请尝试以下命令。在我的情况下,这在Hortonworks数据平台(HDP)2.3。*及更高版本上运行良好。这也应该适用于cloudera的最新平台。

hadoop fs -count -q -h -v /path/to/directory 

(-q =配额,-h =人类可读的值,-v =详细)

此命令将显示在输出的以下字段。 配额REMAINING_QUOTA SPACE_QUOTA REMAINING_SPACE_QUOTA DIR_COUNT FILE_COUNT CONTENT_SIZE FILE_NAME

CONTENT_SIZE = real file size without replication (10GB) and 
SPACE_QUOTA = space occupied in HDFS to save the file (30GB) 

注: 控制复制的因素在这里:修改 “dfs.replication” 属性下默认的conf /目录在HDFS-site.xml文件中找到hadoop安装目录)。如果您有多节点群集,则建议使用Ambari/Cloudera Manager更改此设置。

还有其他的命令来检查存储空间。 E.G hadoop fsck,hadoop dfs -dus,