您好,登錄后才能下訂單哦!
HDFS集群中以Master-Slave模式運行,主要有兩類節點:一個Namenode節點(即master)和多個Datanode節點。Namenode管理文件系統的Namespace.他維護著文件系統樹以及文件樹中所有的文件和文件夾的元數據。
hdfs架構圖:
Namenode:
Namenode管理文件系統的Namespace。它維護著文件系統樹以及文件樹中所有的文件和文件夾的元數據(Metadata).管理這些信息的文件有兩個,分別是Namespace鏡像文件(Namespace p_w_picpath)和操作日志文件(edit log), 這些信息被Cache在RAM中,當然,這兩個文件也會被持久化存儲在本地磁盤。Namenode記錄著每個文件中各個塊所在的數據節點的位置信息,但是它并不持久化存儲這些信息,因為這些信息會在系統重啟時從數據及節點重建。
Namenode結構抽象圖:
客戶端代表用戶與namenode和datanode交互來訪問整個文件系統。客戶端提供了一系列的文件系統接口,因此我們在編程時,幾乎無需知道datanode和namenode,即可完成我們所需要的功能。
Datanode:
Datanode是文件系統的工作節點,他們根據客戶端或者namenode的調度存儲和檢索數據,并且定期向namenode發送他們所存儲的塊(block)的列表.
Namenode容錯機制:
沒有了Namenode,HDFS就不能工作。事實上,如果運行namenode的機器壞掉的話,系統中的文件將會完全丟失,因為沒有其他方法能夠將位于不同datanode上的文件塊重建文件。因此,namenode的容錯機制非常重要,Hadoop提供了兩種容錯機制。
第一種方式:將持久化存儲在本地磁盤的文件系統元數據備份。Hadoop可以通過配置來讓Namenode將它的持久化狀態寫道不同的文件系統中。這種寫操作時同步并且是原子化的。比較常見的配置是在將持久化狀態寫道本地磁盤的同時,也寫到遠端掛載的網絡文件系統。
第二種方式:是運行一個輔助的Namenode(Secondary Namenode).實時上Secondary Namenode并不能被用作Namenode它的主要作用是定期將namespace鏡像與操作日志文件(edit log)合并,以防止操作日志文件(edit log)變的過大。通常,Secondary Namenode 運行在一個單獨的物理機上,因為合并nameSpace鏡像的一個備份,如果namenode宕機了,這個備份就可以用上。但是輔助namenode總是落后于namenode,所以在namenode宕機時,數據丟失時不可避免的。在這種情況下,一般的,要結合第一種方式中提到的遠程掛載的網絡文件系統(NFS)中的namenode 的元數據文件來使用,把nfs中的namenode元數據文件,拷貝到輔助namenode并把輔助namenode作為namenode來運行。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。