如何查看整个根 hdfs 磁盘使用情况? (hadoop dfs -du / 获取子文件夹)

Posted

技术标签:

【中文标题】如何查看整个根 hdfs 磁盘使用情况? (hadoop dfs -du / 获取子文件夹)【英文标题】:How to see entire root hdfs disk usage? (hadoop dfs -du / gets subfolders) 【发布时间】:2014-08-05 19:35:03 【问题描述】:

我们可能并不意外地认为大数据对业务有多么吸引人,这是我们希望在我们的 hadoop 集群上监控的磁盘空间问题。

我有一个 cron 作业正在运行,它正在做我想做的事,只是我希望其中一个输出行显示使用的整体空间。换句话说,在 bash 中,“du /”命令的最后一行显示了整个磁盘上所有子文件夹的总使用量。我喜欢这种行为。

目前,当我运行“hadoop dfs -du /”时,我只获得子目录信息,而不是总目录信息。

获得这个的最佳方法是什么? 非常感谢所有 Super Stack Overflow 的人 :)。

【问题讨论】:

【参考方案1】:

我只是没有正确理解文档!这是获得使用的总空间的答案;

$ hadoop dfs -dus /
hdfs://MYSERVER.com:MYPORT/ 999
$ array=(`hadoop dfs -dus /`)
$ echo $array
hdfs://MYURL:MYPORT/
$ echo $array[1] $array[0]
999 hdfs://MYURL:MYPORT/

参考;文件系统外壳指南 http://hadoop.apache.org/docs/r1.2.1/file_system_shell.html#du //编辑;还更正了报告顺序以匹配原始顺序。

【讨论】:

这个答案需要重新审视。 hdaoop dfs 命令和选项 -dusboth 现在都已弃用。 hdfs dfs -du -s -h / 将是在撰写本文时尝试的精确命令。【参考方案2】:

hadoop fs -du -s -h /path

这将为您提供摘要。

对于整个集群,您可以尝试:

hdfs dfsadmin -report

您可能需要使用 HDFS 用户运行它。

【讨论】:

在 RHEL 上,这对我不起作用?我得到一个错误? (此处省略了尾部) s -du -s / du:无法访问 -s:没有这样的文件或目录。找到 2 项 999 hdfs://MYURL/apps 开; $ hadoop version => Hadoop 1.2.0.1.3.0.0-107 Subversion git://ip-10-191-187-97/ on branch condor-branch-1 -r d4625cb994e0143f5f4b538f0f2f4a41ad6464a2 由 jenkins 于 5 月 20 日星期一 02:25 编译:14 EDT 2013 来自具有校验和 295dfaf445332ed0c577a94795a1eaa9 的源 此命令是使用 /usr/lib/hadoop/hadoop-core-1.2.0.1.3.0.0-107.jar 运行的 这个命令对我来说很好用。我正在使用带有 CDH 4 和 CDH 5 的 Cloudera Distribution。对于整个集群,您可以尝试:hdfs dfsadmin -report

以上是关于如何查看整个根 hdfs 磁盘使用情况? (hadoop dfs -du / 获取子文件夹)的主要内容,如果未能解决你的问题,请参考以下文章

Hdfs的DN节点数据磁盘大小不均衡如何处理

hdfs dfsadmin -report

hdfs dfsadmin -report

hdfs dfsadmin -report

hdfs dfsadmin -report

hdfs dfsadmin -report