消耗的HDFS空间:“hdfs dfs -du /”vs“hdfs dfsadmin -report”

时间:2015-11-04 09:06:00

标签: hadoop hdfs

哪个工具是衡量消耗HDFS空间的正确工具?

当我总结“hdfs dfs -du /”的输出时,与“hdfs dfsadmin -report”(“DFS Used”行)相比,我总是消耗更少的空间。是否存在du未考虑的数据?

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

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与30GB)

如果您使用的是最新版本的Hadoop,请尝试以下命令。就我而言,这在Hortonworks数据平台(HDP)2.3。*及更高版本上非常有效。这也适用于cloudera的最新平台。

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

( - q = quota,-h =人类可读值,-v =详细)

此命令将在输出中显示以下字段。 QUOTA 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"在默认的hadoop安装目录的conf / dir下的hdfs-site.xml文件中找到的属性)。如果您有多节点群集,建议使用Ambari / Cloudera Manager更改此值。

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