歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 理解hadoop fsck、fs -dus、-count -q的大小輸出

理解hadoop fsck、fs -dus、-count -q的大小輸出

日期:2017/2/27 15:56:11   编辑:Linux教程

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

Copyright © Linux教程網 All Rights Reserved