之前我寫了一篇《 》,本文將解釋一下這個集群下Namenode節點裡的元數據。下一篇講Datanode裡的元數據。
通過下面的命令進入到namenode的容器裡:
<code>$ docker exec -it namenode bash/<code>
hadoop/dfs/name 目錄
<code>root@05f1f3fc4dd6:/# cd hadoop/dfs/name//<code>
in_use.lock
name 目錄下面有一個in_use.lock文件和一個current目錄。
<code>root@05f1f3fc4dd6:/hadoop/dfs/name# ls -al
total 16
drwxr-xr-x 3 root root 4096 Mar 22 07:34 .
drwxr-xr-x 3 root root 4096 Feb 4 16:28 ..
drwx------ 2 root root 4096 Mar 22 07:46 current
-rw-r--r-- 1 root root 16 Mar 22 07:46 in_use.lock/<code>
current 目錄
<code>root@05f1f3fc4dd6:/hadoop/dfs/name/current# ls -al
total 5144
drwx------ 2 root root 4096 Mar 22 07:46 .
drwxr-xr-x 3 root root 4096 Mar 22 07:34 ..
-rw-r--r-- 1 root root 213 Mar 22 07:34 VERSION
-rw-r--r-- 1 root root 1048576 Mar 22 07:34 edits_0000000000000000001-0000000000000000001
-rw-r--r-- 1 root root 1048576 Mar 22 07:38 edits_0000000000000000002-0000000000000000038
-rw-r--r-- 1 root root 1048576 Mar 22 07:41 edits_0000000000000000039-0000000000000000059
-rw-r--r-- 1 root root 1048576 Mar 22 07:42 edits_0000000000000000060-0000000000000000080
-rw-r--r-- 1 root root 1048576 Mar 23 07:46 edits_inprogress_0000000000000000081
-rw-r--r-- 1 root root 399 Mar 22 07:34 fsimage_0000000000000000000
-rw-r--r-- 1 root root 62 Mar 22 07:34 fsimage_0000000000000000000.md5
-rw-r--r-- 1 root root 3 Mar 22 07:46 seen_txid/<code>
VERSION 文件
<code>root@05f1f3fc4dd6:/hadoop/dfs/name/current# cat VERSION
#Sun Mar 22 07:34:46 UTC 2020
namespaceID=893392144
clusterID=CID-566c43dd-60f2-41e0-8aa7-25e00a93eec0
cTime=1584862486341
storageType=NAME_NODE
blockpoolID=BP-689076896-172.20.0.2-1584862486341
layoutVersion=-65/<code>
- layoutVersion - HDFS元數據格式的版本。當我們添加需要更改元數據格式的新功能時,我們將更改此數字。當HDFS軟件使用的佈局版本比此處當前跟蹤的版本新時,需要升級HDFS。
- namespaceID / clusterID / blockpoolID - 這些是HDFS集群的唯一標識符。標識符用於防止DataNode意外註冊到屬於其他群集的不正確的NameNode。這些標識符在聯合部署中也特別重要。在聯合部署中,有多個NameNode獨立工作。每個NameNode服務於名稱空間(namespaceID),並管理唯一的塊集(blockpoolID)。clusterID將整個群集聯繫在一起成為單個邏輯單元。在集群中的所有節點上都是相同的。
- storageType - 存儲類型,NAME_NODE或JOURNALAL_NODE。
- cTime - 文件系統狀態的創建時間。HDFS升級的時候將更新此字段。
文件系統鏡像文件 fsimage
fsimage_
編輯日誌edit log,記錄了在最近的fsimage之後進行的每個文件系統更改(文件創建,刪除或修改)。
edits_<start>_
edits_inprogress_<start> – 這是當前正在進行的編輯日誌。從<start>開始的所有變更都記錄在此文件中。HDFS以1 MB的塊大小在該文件中預先分配了空間,以提高效率。您可能會看到此文件的大小為1 MB的倍數。HDFS結束這個edit log的時候,會釋放未使用空間,因此最終文件的大小將縮小。
seen_txid
本人將持續編寫分佈式系統設計相關的技術文章和視頻,歡迎關注和討論。
閱讀更多 閒扯編程那點事 的文章