HDFS集羣有兩類節點,即一個NameNode(管理者)和多個DataNode(工作者)。NameNode(以下簡稱nn)是master,主要負責管理hdfs文件系統,具體地包括namespace管理(其實就是目錄結構),block管理(其中包括 filename->block,block->ddatanode list的對應關係)。DataNode(以下簡稱dn)主要是用來存儲數據文件。
還有一個重要的節點:Secondary NameNode,該部分主要是定時對NameNode進行數據snapshots進行備份,這樣儘量降低NameNode崩潰之後,導致數據的丟失,其實所作的工作就是從nn獲得fsimage和edits把二者重新合併然後發給nn,這樣,既能減輕nn的負擔又能保險地備份。 體現了分佈式架構中的高可用性。
下圖爲nn和snn交互的工作機制: