设为首页 收藏本站
查看: 2044|回复: 0

[经验分享] hadoop fs 获取文件大小

[复制链接]
累计签到:29 天
连续签到:1 天
发表于 2017-12-17 07:44:56 | 显示全部楼层 |阅读模式
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>  
Total dirs:    3922
  
Total files:   418464

  
Total blocks (validated):      502705 (avg. block>  
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剩余量等。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-424922-1-1.html 上篇帖子: python + hadoop (案例) 下篇帖子: Hadoop中的Partitioner浅析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表