hdfs集群中有兩類節點:工作節點datanode、管理節點namenode
namenode管理檔案系統的命名空間,它維護著檔案系統樹以及該樹所有的檔案和目錄。這些資訊以兩個檔案形式永久儲存在本地磁碟上,分別是命名空間映象檔案和編輯日誌檔案。
namenode記錄著每個檔案系統中各個塊所在的資料節點資訊,但它不永久儲存塊的位置資訊,因為這些資訊會在系統啟動時根據資料節點資訊重建。
datanode是檔案系統的工作節點,它們根據需要儲存並檢索資料塊,並且定期向namenode傳送它們所儲存的塊的列表。
客戶端代表使用者通過namenode和datanode互動來訪問整個檔案系統。客戶端提供乙個類似於posix(可移植作業系統介面)的檔案系統介面,因此使用者在程式設計時無需知道namenode和datanode也可以實現其功能。
沒有namenode,檔案系統將無法使用。如果執行namenode的伺服器損壞,那麼檔案系統上的檔案將會丟失,因為我們不知道如何根據datanode的塊重建檔案。因此,對於namenode實現容錯非常重要,hadoop提供了兩種容錯機制。
1. 第一種方法
備份那些組成檔案系統元資料持久狀態的檔案。hadoop可以通過配置使namenode在多個檔案系統上儲存元資料的持久狀態。這些寫操作是實時同步的,且是原子操作,一般的配置是,將持久狀態寫入本地磁碟的同時,寫入乙個遠端掛在的網路檔案系統(nfs)
2. 第二種方法
執行乙個輔助的namenode,但它不能被用作namenode(一山不容二虎哈)。這個輔助的namenode的重要作用是定期合併編輯日誌和命名空間映象,以防止編輯日誌過大,這個輔助namenode一般在另一台單獨的物理計算機上執行,因為它需要占用大量的cpu,並且需要與主namenode一樣多的記憶體來執行合併操作。它會儲存合併後的命名空間映象的副本,並在主namenode發生故障時啟用。但是輔助namenode儲存的狀態會落後於主namenode,所以在主節點全部失效時,可能會丟失部分資料。在這種情況下,一般把儲存在nfs上的namenode元資料複製到輔助namenode上,並將輔助namenode作為主namenode來執行。
---摘自《hadoop權威指南》
簡單搞定NameNode和DataNode執行機制
namenode secondary namenode 工作機制 文字總結 1 第一階段 namenode啟動 1 第一次啟動 namenode 格式化後,建立 fsimage 和edits 檔案。如果不是第一次啟動,直接載入編輯日誌和映象檔案到記憶體。2 客戶端對元資料進行增刪改查的請求 3 na...
NameNode中的Fsimage和Edits解析
在在 opt module hadoop 2.7.2 data tmp dfs name current 目錄下 1.fsimage檔案 hdfs檔案系統元資料的乙個永久性的檢查點,其中包含hdfs檔案系統的所有目錄和檔案idnode的序列化資訊 2.fsimage.md5檔案 是映象檔案的 md5...
NameNode和DataNode間的聯絡
本文內容還是 自 吳超沉思錄裡的,還是挺佩服吳超老師的o o 以下介紹namenode和datanode所扮演的角色 1 namenode namenode的作用是管理檔案目錄結構,是管理資料節點的。namenode維護兩套資料 一套是檔案目錄與資料塊之間的關係,另一套是資料塊與節點間的關係。前一套...