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剩余量等。
hadoop fs 获取文件大小的更多相关文章
- 【转】Hadoop FS Shell命令
FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args> 的形式. 所有的的FS shell命令使用URI路径作为参数.URI格式是scheme ...
- HDFS的基本shell操作,hadoop fs操作命令
(1)分布式文件系统 随着数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管 ...
- Hadoop fs命令详解
本文非原创,转载自http://www.superwu.cn/2013/07/31/312 另外参考:http://www.blogjava.net/changedi/archive/2013/08/ ...
- 用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 ...
- Hadoop fs 命令详解
1. 环境:hadoop-2.6.0 2. 参数说明: hadoop fs [-appendToFile <localsrc> ... <dst>] [-cat [-ignor ...
- Hadoop fs -put bandwidth 暴力版
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreem ...
- hadoop fs 命令使用
参考:https://segmentfault.com/a/1190000002672666 命令基本格式: hadoop fs -cmd < args > 1.ls hadoop fs ...
- 013_HDFS文件合并上传putmarge功能(类似于hadoop fs -getmerge)
场景 合并小文件,存放到HDFS上.例如,当需要分析来自许多服务器的Apache日志时,各个日志文件可能比较小,然而Hadoop更合适处理大文件,效率会更高,此时就需要合并分散的文件.如果先将所有文件 ...
- hadoop fs 常用命令(1)
Hadoop: https://blog.csdn.net/mulangren1988/article/details/54860924 Hadoop:1. Hadoop fs –fs [local ...
随机推荐
- wifipineapple获取用户上网信息
ssh连接到wifipineapple: 输入连接信息:ssh root@172.16.42.1 输入密码:pineapplesareyummy 安装依赖基本环境: opkg update opkg ...
- 魅族便签,是否能成为国内便签应用的No.1?
继前不久锤子科技推出便签 Android 新版后,近期魅族在PRO 6公布会上也公布了最新的魅族便签应用.这一次魅族把便签应用拓展到了整个Android体系,也就是说.其它不论什么的Android手机 ...
- MDX Step by Step 读书笔记(七) - Performing Aggregation 聚合函数之 Max, Min, Count , DistinctCount 以及其它 TopCount, Generate
MDX 中最大值和最小值 MDX 中最大值和最小值函数的语法和之前看到的 Sum 以及 Aggregate 等聚合函数基本上是一样的: Max( {Set} [, Expression]) Min( ...
- Spring中通过Annotation来实现AOP
一.Spring配置文件 <!--通过@AspectJ注解的形式来使用Spring AOP,强制使用CGLIB代理--> <aop:aspectj-autoproxy proxy-t ...
- void java.lang.System.gc()
void java.lang.System.gc() Runs the garbage collector. Calling the gc method suggests that the Java ...
- String s = new String("xyz");产生了几个对象?
面试官Q1:请问String s = new String("xyz");产生了几个对象? 对于这个问题,老套路先上代码: public class StringTest { pu ...
- jQuery动态添加删除与添加表行代码
具体实现代码如下: table的HTML如下: 代码如下 复制代码 <input type="button" value="添加一行" />< ...
- Git 合并多次 commit 、 删除某次 commit
Git 合并多次 commit 有时候在一个分支的多次意义相近的 commit,会把整个提交历史搞得很混乱,此时可以将一部分的 commit 合并为一个 commit,以美化整个 commit 历史, ...
- 深夜一次数据库执行SQL思考(怎么看执行报错信息)
如下sql在执行时 DROP TABLE IF EXISTS `book`; CREATE TABLE `book` ( `id` int(11) NOT NULL AUTO_INCREMENT, ` ...
- RTMP之后,SRT与QUIC
RTMP协议存在累计延迟与加密方面的问题,为适应互联网视频低延时,高质量的要求,以UDP为核心,具有创造性的SRT,QUIC等流媒体视频方式将成为新的选择 RTMP协议最初是由Macromedia为通 ...