hadodop之HDFS 第一章 hdfs原理


1、HDFS架構:
name node
Data node
Secondary name node

1)客戶端選讀取數據。 和Name node 獲取元數據。
2)Name node 查詢元數據信息。 元數據信息放在二維數據庫如mysql。 內存和磁盤分別保存一份。
 
3)返回Metadata數據給Name node,然後返回給 客戶端。

4) 數據就近原則。
5) Name node的水平復制

2、 元數據存儲細節   Name  Node Metadata
1) 存放在內存和磁盤各一份。
 文件名稱,文件存放了幾份, 分別存放存放在那個位置上。
 
 2)類似倉庫管理的賬本。
 NameNOde (FileName,replicas,block-ids,id2host)
 /test/a.log ,3,{blk_1,blk_2},[{blk_1:[h0,h1,h2]},{blk_2:[h0,h1,h2,h3]}]
 

3、Name node
1)主要作用。
整個文件系統的管理階段。維護整個文件系統的文件目錄樹。
文件/目錄的元信息和每個文件對應的數據塊列表。接受用戶的操作請求。

2)涉及的文件保存在linux的文件系統中。
fsimage 元數據鏡像文件。存放某一時段Name node 內存元數據信息。  
    
edits : 操作日誌文件
fstime  保存最近一次checkpoint的時間。----類似系統的還原點。

 
 hdsf  dfs  -ls -R /
 
 ls
 cd tmp/
 ls
 cd  dfs/
 cd  current
 
 3) Name node工作特點:
 
 內存保存metedat。用於處理讀請求。
 當寫請求過來的時候,name node 首先會寫editlog到磁盤,即向edits文件寫日誌,成功返回後,
 纔會修改內存,並向客戶端返回。
 
 --  V1.0和僞分佈式的工作原理
 Hadoop會維護一個fsimage文件,也就是metadata的鏡像文件。但是不是保存一致。
 每隔一段時間通過合併edits文件更新內容。Secondary name node就是用來合併
 fsimage和edits的文件來更新Name Node的metedata的。
 
 
 4、Secondary Name Node
 HA
  下載fsimage和edits的文件,合併,推送Name Node的metedata的。
 工作流程:
 1)通知 name  node  切換edits
 2)獲取 fsimage 和edits
 3) 將fsimage載入內存併合並edits
 4)將新的fsiamge發送給name node
 5)將新的fsiamege 替換舊的fsiamge
 
 
 V1.0 name node 和 Secondary Name Node 需要分開部署
 
 
1) client 上傳文件,首先發送請求信息給 Name Node
2)Name node 返回信息給client
3) 給Data Node 寫入數據。
4) Name Node  需要edits操作日誌,記錄成功或者失敗的信息。
如果成功,edits +1
內存中的metaData+1
Fsiamge 沒有+1
5) 同步Fsianme的時間:
第一種: checkpoint  3600秒
第二種: edits文件的最大值,一旦超過這個值,則強制checkpoint
 

 5、 Data Node
 提供真實文件數據的存儲服務。
 1)HDFS默認Block 大小爲 128MB,以256MB文件爲例
 
 2)HDFs 如果一個文件小於一個數據塊的大小,並不佔用整個數據塊存儲空間
 3)Replication  多副本。默認三個。---是對塊的副本

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章