Pau*_*l M 31
我也发现自己使用hadoop fs -dus <path>了很多.例如,如果名为"/ user/frylock/input"的HDFS上的目录包含100个文件,并且您需要运行所有这些文件的总大小:
hadoop fs -dus /user/frylock/input
Run Code Online (Sandbox Code Playgroud)
然后你会得到"/ user/frylock/input"目录中所有文件的总大小(以字节为单位).
另外,请记住,HDFS以冗余方式存储数据,因此文件使用的实际物理存储空间可能是hadoop fs -ls和报告的3倍或更多hadoop fs -dus.
abh*_*rni 20
您可以使用hadoop fs -ls命令列出当前目录中的文件及其详细信息.命令输出中的第5列包含文件大小(以字节为单位).
例如,命令hadoop fs -ls input给出以下输出:
Found 1 items
-rw-r--r-- 1 hduser supergroup 45956 2012-07-19 20:57 /user/hduser/input/sou
Run Code Online (Sandbox Code Playgroud)
文件大小sou为45956字节.
小智 13
我使用下面的函数帮助我获取文件大小.
public class GetflStatus
{
public long getflSize(String args) throws IOException, FileNotFoundException
{
Configuration config = new Configuration();
Path path = new Path(args);
FileSystem hdfs = path.getFileSystem(config);
ContentSummary cSummary = hdfs.getContentSummary(path);
long length = cSummary.getLength();
return length;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 7
使用awk脚本查看下面的命令,以查看HDFS中过滤输出的大小(以GB为单位):
hadoop fs -du -s /data/ClientDataNew/**A*** | awk '{s+=$1} END {printf "%.3fGB\n", s/1000000000}'
Run Code Online (Sandbox Code Playgroud)
输出---> 2.089GB
hadoop fs -du -s /data/ClientDataNew/**B*** | awk '{s+=$1} END {printf "%.3fG\n", s/1000000000}'
Run Code Online (Sandbox Code Playgroud)
输出---> 1.724GB
hadoop fs -du -s /data/ClientDataNew/**C*** | awk '{s+=$1} END {printf "%.3fG\n", s/1000000000}'
Run Code Online (Sandbox Code Playgroud)
输出---> 0.986GB
| 归档时间: |
|
| 查看次数: |
76374 次 |
| 最近记录: |