背景
- 眾所周知矾策,要獲取hdfs中存儲的目錄信息凶硅,比較簡單的方式可通過訪問8020來獲取厢破,但是此舉會增加NN的壓力荣瑟,同時也采集不到我們最關(guān)心的數(shù)據(jù)訪問時間這個字段。
- 通過解析Hdfs image的話摩泪,可得到數(shù)據(jù)訪問時間字段笆焰,將非常有利于我們進(jìn)行冷熱數(shù)據(jù)分析。
過程
- FsImage文件是分布在運行NN的機器上的见坑,因此需定時把Image上次到hdfs上
- 筆者是每天定時起docker容器拉取Image進(jìn)行解析
- 實踐證明解析后的Image文件大概是原文件的三倍大小
- 解析命令
# 字符按照“嚷掠,”進(jìn)行分割捏检,強烈建議加上-t參數(shù),防止OOM
hdfs oiv -p Delimited -delimiter , -t temporaryDir -i fsimage_0000000075762298193 -o fsimage.csv
- 解析后的字段含義分別是:
- Path:目錄路徑
- Replication:副本數(shù)
- ModificationTime:最后修改時間
- AccessTime:最后訪問時間
- PreferredBlockSize:首選塊大小不皆,單位:byte
- BlocksCount:塊的數(shù)量
- FileSize:文件大小贯城,單位:byte
- NSQUOTA:名稱配額 限制指定目錄下允許的文件和目錄的數(shù)量。
- DSQUOTA:空間配額 限制該目錄下允許的字節(jié)數(shù)
- Permission:權(quán)限
- UserName:用戶
- GroupName:用戶組
- 最后可以把解析玩的csv文件上傳到HIVE中霹娄,通過寫HQL查詢你感興趣的東西
- fsImage中數(shù)據(jù)非常全能犯,相當(dāng)于全景圖,只要想要的幾乎都可以查到