zoukankan      html  css  js  c++  java
  • hadoop fs 获取文件大小

    du

    使用方法:hadoop fs -du URI [URI …]

    显示目录中所有文件的大小,或者当只指定一个文件时,显示此文件的大小。
    示例:
    hadoop fs -du /user/hadoop/dir1 /user/hadoop/file1 hdfs://host:port/user/hadoop/dir1 
    返回值:
    成功返回0,失败返回-1。 

    dus

    使用方法:hadoop fs -dus <args>

    显示文件的大小。

    hadoop fs -du -s -h ${filePath} = ${SIZE}  ${filePath}

    -h 表示将大小进行转换使用合适的单位。

    -du可以接受多个文件路径,且当文件路径不存在时,不影响随后的路径的计算。

    300个路径测试dus比du快3秒,平均一条路径快0.01秒。

    实际应用中统计67727个目录,可以差出十分钟之多。

     ======================================================

    以下转自:理解hadoop fsck、fs -dus、-count -q的大小输出

    很多hadoop用户经常迷惑hadoop fsck,hadoop fs -dus,hadoop -count -q等hadoop文件系统命令输出的大小以及意义。
    这里对这类问题做一个小结。首先我们来明确2个概念:

    • 逻辑空间,即分布式文件系统上真正的文件大小
    • 物理空间,即存在分布式文件系统上该文件实际占用的空间

    为什么逻辑空间一般不等于物理空间?
    分布式文件系统为了保证文件的可靠性,往往会保存多个备份(一般是3份),只要备份数不为1的情况下,一般物理空间会是逻辑空间的几倍。关系如下:

    HDFS物理空间=逻辑空间*block备份数

    hadoop fsck和hadoop fs -dus 
    执行hadoop fsck和hadoop fs -dus显示的文件大小表示的是文件占用的逻辑空间。

    $ hadoop fsck /path/to/directory
     Total size:    16565944775310 B    <=== 看这里
     Total dirs:    3922
     Total files:   418464
     Total blocks (validated):      502705 (avg. block size 32953610 B)
     Minimally replicated blocks:   502705 (100.0 %)
     Over-replicated blocks:        0 (0.0 %)
     Under-replicated blocks:       0 (0.0 %)
     Mis-replicated blocks:         0 (0.0 %)
     Default replication factor:    3
     Average block replication:     3.0
     Corrupt blocks:                0
     Missing replicas:              0 (0.0 %)
     Number of data-nodes:          18
     Number of racks:               1
    FSCK ended at Thu Oct 20 20:49:59 CET 2011 in 7516 milliseconds
     
    The filesystem under path '/path/to/directory' is HEALTHY
    
    $ hadoop fs -dus /path/to/directory
    hdfs://master:54310/path/to/directory        16565944775310    <=== 看这里

    正如命令示例所见,hadoop fsck和hadoop fs -dus报告的文件大小都是HDFS文件实际占用的大小,即这个空间大小是没有算块的备份数的。文件真正占用的物理空间=逻辑空间block备份数据,即16565944775310 3=49697834325930,这个49697834325930是物理空间。

    hadoop fs -count -q 
    通过执行hadoop fs -count -q /path/to/directory 可以看到这个目录真正的空间使用情况。执行结果如下:

    $ hadoop fs -count -q /path/to/directory
      QUOTA  REMAINING_QUOTA     SPACE_QUOTA  REMAINING_SPACE_QUOTA    DIR_COUNT  FILE_COUNT      CONTENT_SIZE FILE_NAME
       none              inf  54975581388800          5277747062870        3922       418464    16565944775310 hdfs://master:54310/path/to/directory

    fs -count -q会输出8列,分别表示如下:

    命名空间的quota(限制文件数) 剩余的命名空间quota 物理空间的quota (限制空间占用大小) 剩余的物理空间 目录数统计 文件数统计 目录逻辑空间总大小 路径

    可以看出通过hadoop fs -count -q 可以看到一个目录比较详细的空间和qutoa占用情况,包含了物理空间、逻辑空间、文件数、目录数、qutoa剩余量等。

  • 相关阅读:
    MT【347】单变量求最值
    MT【346】拐点处分界
    MT【345】三个绝对值的和
    MT【344】构造函数
    MT【343】三数平方法
    MT【342】条件为非负实数
    MT【341】换元变形
    MT【340】彭塞列闭合定理
    MT【339】待定系数
    MT【338】分式变形
  • 原文地址:https://www.cnblogs.com/suanec/p/7001333.html
Copyright © 2011-2022 走看看