【Hadoop】NameNode 詳解
簡(jiǎn)介 NameNode管理著(zhù)整個(gè)HDFS文件系統的元數據。 從架構設計上看,元數據大致分成兩個(gè)層次:Namespace管理層,負責管理文件系統中的樹(shù)狀目錄結構以及文件與數據塊的映射關(guān)系; 塊管理層,負責管理文件系統中文件的物理塊與實(shí)際存儲位置的映射關(guān)系BlocksMap,如圖1所示。 Namespace管理的元數據除內存常駐外,也會(huì )周期Flush到持久化設備上FsImage文件;BlocksMap元數據只在內存中存在; 當NameNode發(fā)生重啟,首先從持久化設備中讀取FsImage構建Namespace,之后根據DataNode的匯報信息重新構造BlocksMap。 這兩部分數據結構是占據了NameNode大部分JVM Heap空間。 除了對文件系統本身元數據的管理之外,NameNode還需要維護整個(gè)集群的機架及DataNode的信息、Lease管理以及集中式緩存引入的緩存管理等等。 這幾部分數據結構空間占用相對固定,且占用較小。 內存全景 NameNode整個(gè)內存結構大致可以分成四大部分:Namespace、BlocksMap、NetworkTopology及其它 Names....