2015-11-04 70 views

回答

1

Hadoop文件系統通過將數據副本放置到多個節點來提供重標記存儲。副本的數量是複製因素,通常它是一個複製因子。

命令hdfs dfs -du /顯示空間消耗您的數據而不復制。

命令hdfs dfsadmin -report(已使用行DFS)顯示實際的磁盤使用情況,同時考慮到數據複製。因此,從dfs -ud命令獲得的數字應該是幾倍。

+2

在以後的hadoop版本中輸出「hdfs dfs -du」(大小不帶和帶複製) – facha

0

HDFS存儲工作原理簡述:

Let say replication factor = 3 (default) 
Data file size = 10GB (i.e xyz.log) 
HDFS will take 10x3 = 30GB to store that file 

根據您使用命令的類型,你將獲得由HDFS(10GB VS 30GB)佔據

空間不同的值如果您在最新版本的Hadoop,請嘗試以下命令。在我的情況下,這在Hortonworks數據平臺(HDP)2.3。*及更高版本上運行良好。這也應該適用於cloudera的最新平臺。

hadoop fs -count -q -h -v /path/to/directory 

(-q =配額,-h =人類可讀的值,-v =詳細)

此命令將顯示在輸出的以下字段。 配額REMAINING_QUOTA SPACE_QUOTA REMAINING_SPACE_QUOTA DIR_COUNT FILE_COUNT CONTENT_SIZE FILE_NAME

CONTENT_SIZE = real file size without replication (10GB) and 
SPACE_QUOTA = space occupied in HDFS to save the file (30GB) 

注: 控制複製的因素在這裏:修改 「dfs.replication」 屬性下默認的conf /目錄在HDFS-site.xml文件中找到hadoop安裝目錄)。如果您有多節點羣集,則建議使用Ambari/Cloudera Manager更改此設置。

還有其他的命令來檢查存儲空間。 E.G hadoop fsck,hadoop dfs -dus,