Hadoop 可靠性

2021-03-26 11:10 更新

HDFS - 可靠性

HDFS 的可靠性主要有以下幾點:

  • 冗余副本策略
  • 機架策略
  • 心跳機制
  • 安全模式
  • 效驗和
  • 回收站
  • 元數(shù)據(jù)保護
  • 快照機制

 

1.冗余副本策略

  可以在 hdfs-site.xml 中設(shè)置復(fù)制因子指定副本數(shù)量

  所有數(shù)據(jù)塊都可副本

  DataNode 啟動時,遍歷本地文件系統(tǒng),產(chǎn)生一份 HDFS 數(shù)據(jù)塊和本地文件的對應(yīng)關(guān)系列表 (blockreport) 匯報給 Namenode

2.機架策略

  HDFS 的"機架感知",通過節(jié)點之間發(fā)送一個數(shù)據(jù)包,來感應(yīng)它們是否在同一個機架

  一般在本機架放一個副本,在其他機架再存放一個副本,這樣可以防止機架失效時丟失數(shù)據(jù),也可以提高帶寬利用率

3.心跳機制

  NameNode 周期性從 DataNode 接受心跳信息和塊報告

  NameNode 根據(jù)塊報告驗證元數(shù)據(jù)

  沒有按時發(fā)送心跳的 DataNode 會被標記為宕機,不會再給他任何 I/O 請求

  如果 DataNode 失效造成副本數(shù)量下降,并且低于預(yù)先設(shè)定的值,NameNode 會檢測出這些數(shù)據(jù)庫,并在合適的時機重新復(fù)制

  引發(fā)重新復(fù)制的原因還包括數(shù)據(jù)副本本身損壞,磁盤錯誤,復(fù)制因子被增大等

4.安全模式

  NameNode 啟動時會先經(jīng)過一個 "安全模式" 階段

  安全模式階段不會產(chǎn)生數(shù)據(jù)寫

  在此階段 NameNode 收集各個 DataNode 的報告, 當數(shù)據(jù)塊達到最小副本數(shù)以上時,會被認為是"安全"的

  在一定比例(可設(shè)置) 的數(shù)據(jù)塊被確定為"安全" 后 ,在過若干時間,安全模式結(jié)束

  當檢測到副本數(shù)不足的數(shù)據(jù)塊時,該塊會被復(fù)制,直到達到最小副本數(shù)

5.效驗和  

  在文件創(chuàng)立時,每個數(shù)據(jù)塊都產(chǎn)生效驗和

  效驗和會作為單獨一個隱藏文件保存在命名空間下

  客戶端獲取數(shù)據(jù)時可以檢查效驗和是否相同,從而發(fā)現(xiàn)數(shù)據(jù)塊是否損壞

  如果正在讀取的數(shù)據(jù)塊損壞,則可以繼續(xù)讀取其他副本

6.回收站

  刪除文件時,其實是放入回收站 /trash

  回收站里的文件是可以快速恢復(fù)的

  可以設(shè)置一個時間值,當回收站里文件的存放時間超過了這個值,就被徹底刪除,并且釋放占用的數(shù)據(jù)塊

7.元數(shù)據(jù)保護

  映像文件和事物日志是 NameNode 的核心數(shù)據(jù).可以配置為擁有多個副本

  副本會降低 NameNode 的處理速度,但增加安全性

  NameNode 依然是單點,如果發(fā)生故障要手工切換

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號