天天看點

Hadoop HDFS概念學習系列之NameNode(五)

 HDFS采用Master/Slave架構。NameNode就是HDFS的Master架構。HDFS系統包括一個NameNode元件,主要負責HDFS檔案系統的管理工作,具體包括名稱空間(namespace)管理,檔案Block管理。

  NameNode提供的是始終被動接收服務的server。

      NameNode主要有三類協定接口:

      ClientProtocol接口,提供給用戶端,用于通路NameNode。它包含了檔案的HDFS功能。和GFS一樣. HDFS不提供POSIX形式的接口,而使用了一個私有接口。

DataNodeProtocol接口,用于從DataNode向NameNode通信。

NameNodeProtocol接口,用于從NameNode到NameNode的通信。

  在HDFS内部,一個檔案被分成一個或多個Block,這些Block存儲在DataNode集合裡,NameNode就負責管理檔案Block的所有中繼資料資訊,

  這些中繼資料資訊主要為:

“檔案名 -> 資料塊‘’映射

 “資料塊 -> DataNode清單”映射

  其中,"檔案名 -> 資料塊"儲存在磁盤上進行持久化存儲,需要注意的是NameNode上不儲存‘’資料塊 -> DataNode清單”映射,該清單是通過DataNode上報給NameNode建立起來的。NameNode執行檔案系統的名稱空間(namespace)操作,例如打開、關閉、重命名檔案和目錄,同時決定檔案資料塊到具體DataNode節點的映射。

和NameNode最相關的還有一個概念就是Secondary NameNode,其主要是定時對NameNode的資料snapshots進行備份,這樣可盡量降低NameNode崩潰之後導緻資料丢失的風險,其所做的工作就是從NameNode獲得fsimage和edits後把兩者重新合并發給NameNode,這樣,既能減輕NameNode的負擔又能安全地備份,一旦HDFS的Master架構失效,就可以借助Secondary NameNode進行資料恢複。

本文轉自大資料躺過的坑部落格園部落格,原文連結:http://www.cnblogs.com/zlslch/p/5081112.html,如需轉載請自行聯系原作者

繼續閱讀