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剩余量等。

hadoop fs 获取文件大小的更多相关文章

  1. 【转】Hadoop FS Shell命令

    FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args> 的形式. 所有的的FS shell命令使用URI路径作为参数.URI格式是scheme ...

  2. HDFS的基本shell操作,hadoop fs操作命令

    (1)分布式文件系统 随着数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管 ...

  3. Hadoop fs命令详解

    本文非原创,转载自http://www.superwu.cn/2013/07/31/312 另外参考:http://www.blogjava.net/changedi/archive/2013/08/ ...

  4. 用java运行Hadoop程序报错:org.apache.hadoop.fs.LocalFileSystem cannot be cast to org.apache.

    用java运行Hadoop例程报错:org.apache.hadoop.fs.LocalFileSystem cannot be cast to org.apache.所写代码如下: package ...

  5. Hadoop fs 命令详解

    1. 环境:hadoop-2.6.0 2. 参数说明: hadoop fs [-appendToFile <localsrc> ... <dst>] [-cat [-ignor ...

  6. Hadoop fs -put bandwidth 暴力版

    /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreem ...

  7. hadoop fs 命令使用

    参考:https://segmentfault.com/a/1190000002672666 命令基本格式: hadoop fs -cmd < args > 1.ls hadoop fs ...

  8. 013_HDFS文件合并上传putmarge功能(类似于hadoop fs -getmerge)

    场景 合并小文件,存放到HDFS上.例如,当需要分析来自许多服务器的Apache日志时,各个日志文件可能比较小,然而Hadoop更合适处理大文件,效率会更高,此时就需要合并分散的文件.如果先将所有文件 ...

  9. hadoop fs 常用命令(1)

    Hadoop: https://blog.csdn.net/mulangren1988/article/details/54860924 Hadoop:1. Hadoop fs –fs [local ...

随机推荐

  1. 【Little Demo】左右按钮tab选项卡双切换

    通过前一篇文章 从简单的Tab标签到Tab图片切换 的说明,相关效果也就可以实现了. 1.左右按钮tab选项卡双切换 很明显,左右两个按钮是 absolute 布局,另外就是内容部分和Tab标签部分. ...

  2. 用oc写爬虫之HTMLParser

    最近刚好有一些小需求,就尝试用OC来写一些简单的爬虫抓取网页上的数据: 发现了一个非常好用的HTMLParser工具 ; 语法是OC的,通过分析网页结构:可以很轻松的抓取需要的数据: 但是提前需要了解 ...

  3. VS2017不能打开stdio.h等文件

    从另一台机器上复制过来的项目,由于两台机器的库目录不一致,导致了stdio.h等很多文件都打不开: 解决的办法是从新设置包含目录.选择项目-->%项目名称%属性-->VC++目录,设置包含 ...

  4. 【PMP】项目浮动的三种时间

    自由浮动时间 不影响后续工作最早可以开始时间的前提下,这项工作可以拖延的时间叫做自由浮动时间. 总浮动时间 不影响项目总工期的情况下活动可以拖延的总时间. 项目浮动时间 在已经排好的总工期的基础上,领 ...

  5. ROS actionlib学习(三)

    下面这个例子将展示用actionlib来计算随机变量的均值和标准差.首先在action文件中定义goal.result和feedback的数据类型,其中goal为样本容量,result为均值和标准差, ...

  6. EasyUI 的 combotree 加载数据后折叠起来,并且只允许单击子节点的写法

    $(source).combotree({ url: '', width: kuan, valueField: 'id', textField: 'text', onlyLeafCheck: true ...

  7. 第三部分:Android 应用程序接口指南---第二节:UI---第八章 Toast通知

    第8章 Toast通知 Toast通知是在窗口前面弹出的信息.它只占有信息所需要的空间量,并且用户当前的activity仍然是可见的.可互动的.这种通知自动地淡入和淡出,它不接受交互事件.他相当于一种 ...

  8. KVM上如何让虚拟机支持虚拟化(kvm虚拟化的嵌套)

    http://blog.csdn.net/swimming_in_it_/article/details/53320141http://blog.csdn.net/wickedglory/articl ...

  9. 开始逐步补充下相关Web知识,很多年没搞了....

    <script type="text/javascript"> $(function(){ ShowProduct(); $("#ShowUserInfo&q ...

  10. 解决Android微信支付官方demo运行失败

    Android微信支付官方demo运行失败,在此简单记录一下解决步骤 1.httpclient错误 官方给的demo是eclipse的,打开之后提示httpclient的错误,我知道在as下解决htt ...