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