检查HDFS目录大小的方法?
我知道常见 Linux 文件系统中的 du -sh
。但是如何使用 HDFS 做到这一点呢?
I know du -sh
in common Linux filesystems. But how to do that with HDFS?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
0.20.203 之前,并在 2.6.0 中正式弃用:
自
0.20.203(死链接)1.0.4 仍然通过 2.6.0:您还可以运行
hadoop fs -help
了解更多信息和细节。Prior to 0.20.203, and officially deprecated in 2.6.0:
Since
0.20.203(dead link) 1.0.4 and still compatible through 2.6.0:You can also run
hadoop fs -help
for more info and specifics.hadoop fs -du -s -h /path/to/dir
以可读形式显示目录的大小。hadoop fs -du -s -h /path/to/dir
displays a directory's size in readable form.扩展到Matt D和其他答案,该命令可以直到Apache Hadoop 3.0.0
du
返回具有以下格式的三列:示例命令:
退出代码:成功时返回 0,错误时返回 -1。
来源:Apache 文档
Extending to Matt D and others answers, the command can be till Apache Hadoop 3.0.0
du
returns three columns with the following format:Example command:
Exit Code: Returns 0 on success and -1 on error.
source: Apache doc
这样你就可以得到以 GB 为单位的大小
With this you will get size in GB
当尝试计算目录中特定文件组的总数时,
-s
选项不起作用(在 Hadoop 2.7.1 中)。例如:目录结构:
假设每个文件大小为 1 KB。您可以使用以下命令总结整个目录:
但是,如果我想要包含“count”的所有文件的总和,则该命令无法满足要求。
为了解决这个问题,我通常通过 awk 传递输出。
When trying to calculate the total of a particular group of files within a directory the
-s
option does not work (in Hadoop 2.7.1). For example:Directory structure:
Assume each file is 1 KB in size. You can summarize the entire directory with:
However, if I want the sum of all files containing "count" the command falls short.
To get around this I usually pass the output through awk.
以人类可读格式获取文件夹大小的最简单方法是
添加
-s
来获取总和The easiest way to get the folder size in a human readable format is
where
-s
can be added to get the total sum要获取目录的大小,可以使用hdfs dfs -du -s -h /$yourDirectoryName。
hdfs dfsadmin -report 可用于查看快速集群级别存储报告。
To get the size of the directory hdfs dfs -du -s -h /$yourDirectoryName can be used.
hdfs dfsadmin -report can be used to see a quick cluster level storage report.
hadoop 版本 2.3.33:
hadoop version 2.3.33:
Hadoop 集群上已用空间的百分比
sudo -u hdfs hadoop fs –df
特定文件夹下的容量:
sudo -u hdfs hadoop fs -du -h /user
% of used space on Hadoop cluster
sudo -u hdfs hadoop fs –df
Capacity under specific folder:
sudo -u hdfs hadoop fs -du -h /user
hdfs dfs -count
信息:
手册页中的
hdfs dfs -count <dir>
info from man page:
如果有人需要通过Python方式:)
安装
hdfs
python包pip 安装 hdfs
code
Incase if someone is need through pythonic way :)
Install
hdfs
python packagepip install hdfs
code
命令应为
hadoop fs -du -s -h \dirPath
-du [-s] [-h] ... :显示空间量,以字节为单位,由与指定文件模式匹配的文件使用。
-s :而不是显示与
匹配的每个单独文件的大小
模式,显示总(摘要)大小。
-h :以人类可读的方式而不是字节数格式化文件的大小。 (例如 MB/GB/TB 等)
请注意,即使没有 -s 选项,这也仅显示一级大小摘要
深入目录。
输出的形式为
大小名称(完整路径)
Command Should be
hadoop fs -du -s -h \dirPath
-du [-s] [-h] ... : Show the amount of space, in bytes, used by the files that match the specified file pattern.
-s : Rather than showing the size of each individual file that matches the
pattern, shows the total (summary) size.
-h : Formats the sizes of files in a human-readable fashion rather than a number of bytes. (Ex MB/GB/TB etc)
Note that, even without the -s option, this only shows size summaries one level
deep into a directory.
The output is in the form
size name(full path)