哪个工具是衡量HDFS空间消耗的正确方法?消耗的HDFS空间:“hdfs dfs -du /”vs“hdfs dfsadmin -report”
当我总结“hdfs dfs -du /”的输出时,与“hdfs dfsadmin -report”(“DFS Used”行)相比,我总是获得更少的空间消耗。有没有数据杜没有考虑到?
哪个工具是衡量HDFS空间消耗的正确方法?消耗的HDFS空间:“hdfs dfs -du /”vs“hdfs dfsadmin -report”
当我总结“hdfs dfs -du /”的输出时,与“hdfs dfsadmin -report”(“DFS Used”行)相比,我总是获得更少的空间消耗。有没有数据杜没有考虑到?
Hadoop文件系统通过将数据副本放置到多个节点来提供重标记存储。副本的数量是复制因素,通常它是一个复制因子。
命令hdfs dfs -du /
显示空间消耗您的数据而不复制。
命令hdfs dfsadmin -report
(已使用行DFS)显示实际的磁盘使用情况,同时考虑到数据复制。因此,从dfs -ud
命令获得的数字应该是几倍。
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,
在以后的hadoop版本中输出“hdfs dfs -du”(大小不带和带复制) – facha