哪個工具是衡量HDFS空間消耗的正確方法?消耗的HDFS空間:「hdfs dfs -du /」vs「hdfs dfsadmin -report」
當我總結「hdfs dfs -du /」的輸出時,與「hdfs dfsadmin -report」(「DFS Used」行)相比,我總是獲得更少的空間消耗。有沒有數據杜沒有考慮到?
哪個工具是衡量HDFS空間消耗的正確方法?消耗的HDFS空間:「hdfs dfs -du /」vs「hdfs dfsadmin -report」
當我總結「hdfs dfs -du /」的輸出時,與「hdfs dfsadmin -report」(「DFS Used」行)相比,我總是獲得更少的空間消耗。有沒有數據杜沒有考慮到?
Hadoop文件系統通過將數據副本放置到多個節點來提供重標記存儲。副本的數量是複製因素,通常它是一個複製因子。
命令hdfs dfs -du /
顯示空間消耗您的數據而不復制。
命令hdfs dfsadmin -report
(已使用行DFS)顯示實際的磁盤使用情況,同時考慮到數據複製。因此,從dfs -ud
命令獲得的數字應該是幾倍。
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,
在以後的hadoop版本中輸出「hdfs dfs -du」(大小不帶和帶複製) – facha