對HDFS組成架構通俗易懂的理解

面對一個新技術,有時候總是會感到一些恐慌,尤其是出現的一些新名詞,更是手足無措,下面我們就來簡單的梳理一下hdfs各個組件,如何通俗易懂的解釋組件。

hdfs組件分為Namenode、Datanodes、Client和Secondary NameNode。不要慌,下面來一一解讀


對HDFS組成架構通俗易懂的理解

官網上對hdfs組成架構的描述

  • Namenode
    1. Namenode 直譯就是名字節點,習慣叫名稱節點(節點,就是服務器,你可以理解成一個地方)。顧名思義,就是一個存儲名字的地方,存誰的名字呢,hdfs作為一個文件系統,當然就是存文件的名字
    2. 我們可以理解為,Namenode就是一個人,這個人記著文件的名字
    3. 當然只有名字,我們也是找不到文件的,所以這個人還記錄了文件的地址
    4. 主要就是這兩點:記錄文件名,記錄文件的地址
  • DataNode
    1. DataNode直譯就是數據節點,習慣也是叫數據節點。顧名思義,數據節點就是存數據的地方。
    2. 我們可以理解為,Datanode就是一個保存文件的人,他還會負責這個文件的收發
  • Client
    1. Client直譯就是客戶端,習慣也叫客戶端。
    2. 我們可以理解成就是一個客戶,誰的客戶,hdfs的客戶,客戶使用hdfs想幹嘛,當然是存文件和取文件
    3. 那麼自然而然,客戶想要文件,得知道文件的存在誰手裡,那麼就得去問NameNode這個人
    4. 從NameNode打聽到文件存在哪個DataNode手裡,就可以去DataNode這個人手裡取這個文件
    5. 同樣,客戶要保存一個文件,那麼就得告知存位置的這個人(NameNode),得知應該存在哪,客戶就去DataNode存文件
    6. 主要就是,從NameNode獲取文件位置,將數據存入DataNode
  • Secondary NameNode
    1. Secondary NameNode直譯就是第二名字節點,習慣稱為第二名稱節點。由於NameNode任務比較多,所以這個人就是幫助Namenode來分擔工作的。

下邊系統整理了一下各個組件負責的工作

1.NameNode:就是一個主管,管理者

    1. 管理hdfs的名稱空間(記錄文件名的)
    2. 配置副本策略(配置有多少個副本)
    3. 管理數據塊映射信息(記錄文件的地址)
    4. 處理客戶端讀寫請求

2.DataNode:就是存儲文件的。執行NameNode下達的命令

    1. 存儲實際的數據塊
    2. 執行數據塊的讀寫操作

3.Client:就是客戶

  1. 文件切分。比較大的文件,在上傳前都要切分一下,一塊一塊上傳
  2. 與NameNode交互,獲取文件的位置信息
  3. 與DataNode交互,讀取或寫入數據
  4. Client提供一些命令來管理HDFS,比如NameNode格式化
  5. Client可以通過一些命令來訪問HDFS,比如HDFS增刪改查操作

4.Secondary NameNode:幫助NameNode分擔任務。

  1. 輔助NameNode,分擔工作量,比如定期合併Faimage和Edits,並推送給NameNode
  2. 緊急情況下,可輔助恢復NameNode
  • 總結,我們可以用面向對象的方式來看各個組件的關係,把每一個節點看作一個人,他們各自有各自的任務,相互協作,共同完成數據存儲的任務。


對HDFS組成架構通俗易懂的理解

相互合作,共同完成任務


分享到:


相關文章: