1. 程式人生 > >HDFS架構(傳統架構 和 2.0中高可用+聯邦架構)學習筆記

HDFS架構(傳統架構 和 2.0中高可用+聯邦架構)學習筆記

一、傳統架構:


1.    如上圖所示,hadoop1中HDFS分為:1個NameNode節點(NN,主) + 1個Second NameNode節點(SNN,主) + N個 DataNode節點(DN,從)。

3. DN負責儲存和控制資料,客戶端通過虛擬的檔案目錄(例如:http://namenode:9000/aa/bb/cc/dd.txt)訪問資料,目錄是虛擬的,實際上dd.txt檔案在HDFS上並不存在,

而是以block的形式存在DN上(具體存在DN上的哪一個目錄上可以通過配置檔案自行設定),dd.txt檔案與真實的資料塊之間的對映關係等元資料在NN上。

4. NN上儲存所有的元資料,記錄檔案內容儲存相關資訊
元資料格式為:(Filename,replicas,block-ids,block所在hosts)。詳細可見:http://blog.sina.com.cn/s/blog_a
5. 客戶端寫完一個副本,並將其上傳到DN1上,則DN1再將其copy到DN2上,再由DN2將副本copy到其他DN(非同步的)。
6. 假設客戶端上傳的都是非常多很小的檔案,則會非常佔用NN上的元資料儲存空間。
7. NN的元資料管理機制:
注:(1)客戶端上傳檔案時,NN首先向edits log檔案中記錄元資料的操作日誌。
    (2)客戶端上傳檔案完成後,即第5步驟完成後,返回成功的資訊給NN,NN在記憶體中記錄這次上傳操作新產生的元資料資訊,同時執行2
    (3)每當edits log 檔案寫滿以後要將新元資料刷到fsimage中。
    (4)怎樣使記憶體中資料與fsimage中資料保持同步且一致呢?   由 SNN 完成。
8. SNN並不是NN的備份。NN儲存了元資料的快照-fsimage,同時將元資料的修改寫到edits log。SNN就是負責定期將之前的檔案系統快照與editlog合併生成新的快照,然後將這些快照傳回給NN。SNN工作機制如下:
注:(1)什麼時候要checkpoint?
         fs.checkpoint.period 指定兩次問的最大時間間隔,預設為3600s,即1小時。
         fs.checkpoint.size 預設為64 M。
     以上兩個條件滿足其一即可(上兩個變數可在hdfs-site.xml檔案中設定)。
    (2)以上的所有檔案都存在哪裡?
         core-site.xml檔案中設定的dfs的工作目錄下有3個資料夾
              data/current/裡面有edits和fsimage(都存了很多個版本)等檔案。
              name/.../.../.../.../.../finalized- - -此資料夾中存著block
              namesecondary/.....
9. 一旦NN宕機,雖然元資料可以得到恢復,但是在修復期間該叢集確實不能正常對外提供服務了,此為HA機制出現前的常見問題,此問題在hadoop2中得到了很好的解決。
二、hadoop2 架構             
.