【发布时间】:2016-03-15 14:15:01
【问题描述】:
哪种工具适合测量 HDFS 空间消耗?
当我总结“hdfs dfs -du /”的输出时,与“hdfs dfsadmin -report”(“DFS Used”行)相比,我总是得到更少的空间消耗。有没有du没有考虑的数据?
【问题讨论】:
哪种工具适合测量 HDFS 空间消耗?
当我总结“hdfs dfs -du /”的输出时,与“hdfs dfsadmin -report”(“DFS Used”行)相比,我总是得到更少的空间消耗。有没有du没有考虑的数据?
【问题讨论】:
Hadoop 文件系统通过将数据副本放置到多个节点来提供重新标记存储。副本数是复制因子,通常大于1。
命令hdfs dfs -du / 显示空间在没有复制的情况下消耗您的数据。
命令hdfs dfsadmin -report(行 DFS Used)显示实际磁盘使用情况,同时考虑到数据复制。所以从dfs -ud命令得到的数字应该是大几倍。
【讨论】:
dfs -du -s(字节)和hdfs dfs -count -v(假设CONTENT_SIZE字段的字节相同)是(接近但)不一样值?
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 Data Platform (HDP) 2.3.* 及更高版本上运行良好。这也应该适用于 cloudera 的最新平台。
hadoop fs -count -q -h -v /path/to/directory
(-q = 配额,-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)
注意事项: 在此处控制复制因子:修改默认 hadoop 安装目录的 conf/ 目录下 hdfs-site.xml 文件中的“dfs.replication”属性)。如果您有多节点集群,建议使用 Ambari/Cloudera Manager 更改此设置。
还有其他命令可以检查存储空间。 E.G hadoop fsck, hadoop dfs -dus,
【讨论】:
dfs -du -s path1(字节)和hdfs dfs -count -v path1(假设CONTENT_SIZE字段的字节相同)是(接近但)不一样值?