如何查看整个根 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
命令和选项 -dus
both 现在都已弃用。 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 / 获取子文件夹)的主要内容,如果未能解决你的问题,请参考以下文章