检查HDFS目录大小的方法?

时间:2011-06-28 09:07:09

标签: hadoop command-line directory hdfs

我在常见的Linux文件系统中知道du -sh。但是如何用HDFS做到这一点?

11 个答案:

答案 0 :(得分:141)

在0.20.203之前,并在2.6.0中正式弃用:

hadoop fs -dus [directory]

0.20.203 (死链接)1.0.4以来仍然通过2.6.0兼容:

hdfs dfs -du [-s] [-h] URI [URI …]

您还可以运行hadoop fs -help以获取更多信息和详细信息。

答案 1 :(得分:56)

hadoop fs -du -s -h /path/to/dir以可读的形式显示目录的大小。

答案 2 :(得分:16)

扩展到Matt D和其他答案,该命令可以直到 Apache Hadoop 3.0.0

  

hadoop fs -du [-s] [-h] [-v] [-x] URI [URI ...]

     

它显示给定目录中包含的文件和目录的大小或文件的长度,以防它只是一个文件。

     

选项:

     
      
  • -s 选项将显示文件长度的汇总摘要,而不是单个文件。如果没有-s选项,则通过从给定路径向前移动1级来完成计算。
  •   
  • -h 选项会以人类可读方式格式化文件大小(例如64.0m而不是67108864)
  •   
  • -v 选项会将列名称显示为标题行。
  •   
  • -x 选项将从结果计算中排除快照。如果没有-x选项(默认),则始终从所有INode计算结果,包括给定路径下的所有快照。
  •   

du返回三列,格式如下:

 +-------------------------------------------------------------------+ 
 | size  |  disk_space_consumed_with_all_replicas  |  full_path_name | 
 +-------------------------------------------------------------------+ 

示例命令:

hadoop fs -du /user/hadoop/dir1 \
    /user/hadoop/file1 \
    hdfs://nn.example.com/user/hadoop/dir1 

退出代码:成功时返回0,错误时返回-1。

source: Apache doc

答案 3 :(得分:10)

使用此功能,您将获得GB的大小

hdfs dfs -du PATHTODIRECTORY | awk '/^[0-9]+/ { print int($1/(1024**3)) " [GB]\t" $2 }'

答案 4 :(得分:1)

Hadoop集群上已用空间的百分比
sudo -u hdfs hadoop fs –df

特定文件夹下的容量:
sudo -u hdfs hadoop fs -du -h /user

答案 5 :(得分:1)

要获取目录 hdfs dfs -du -s -h / $ yourDirectoryName 的大小,可以使用。 hdfs dfsadmin -report可用于查看快速集群级别存储报告。

答案 6 :(得分:0)

在尝试计算目录中特定文件组的总数时,set applescriptList to "$bashList" 选项不起作用(在Hadoop 2.7.1中)。例如:

目录结构:

-s

假定每个文件的大小为1 KB。您可以使用以下内容总结整个目录:

some_dir
├abc.txt    
├count1.txt 
├count2.txt 
└def.txt    

但是,如果我想要包含“ count”的所有文件的总和,该命令将不可用。

hdfs dfs -du -s some_dir
4096 some_dir

要解决这个问题,我通常将输出通过awk。

hdfs dfs -du -s some_dir/count*
1024 some_dir/count1.txt
1024 some_dir/count2.txt

答案 7 :(得分:0)

hadoop 2.3.33版:

hadoop fs -dus  /path/to/dir  |   awk '{print $2/1024**3 " G"}' 

enter image description here

答案 8 :(得分:0)

hdfs dfs -count <dir>

手册页中的信息:

-count [-q] [-h] [-v] [-t [<storage type>]] [-u] <path> ... :
  Count the number of directories, files and bytes under the paths
  that match the specified file pattern.  The output columns are:
  DIR_COUNT FILE_COUNT CONTENT_SIZE PATHNAME
  or, with the -q option:
  QUOTA REM_QUOTA SPACE_QUOTA REM_SPACE_QUOTA
        DIR_COUNT FILE_COUNT CONTENT_SIZE PATHNAME

答案 9 :(得分:0)

以人类可读格式获取文件夹大小的最简单方法是

session.close

其中 hdfs dfs -du -h /folderpath 可以相加得到总和

答案 10 :(得分:-1)

命令应为hadoop fs -du -s -h \dirPath

  • -du [-s] [-h] ...:显示与指定文件模式匹配的文件所使用的空间量(以字节为单位)。

  • -s :而不是显示与每个匹配的单个文件的大小         pattern,显示总(摘要)大小。

  • -h :以人类可读的方式而不是多个字节格式化文件的大小。 (例如,MB / GB / TB等)

    请注意,即使没有-s选项,也只显示一个级别的大小摘要 深入到目录。

    输出在表单中     尺寸名称(完整路径)