Hadoop 可靠性

2021-03-26 11:10 更新

HDFS - 可靠性

HDFS 的可靠性主要有以下幾點(diǎn):

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

 

1.冗余副本策略

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

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

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

2.機(jī)架策略

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

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

3.心跳機(jī)制

  NameNode 周期性從 DataNode 接受心跳信息和塊報(bào)告

  NameNode 根據(jù)塊報(bào)告驗(yàn)證元數(shù)據(jù)

  沒有按時(shí)發(fā)送心跳的 DataNode 會(huì)被標(biāo)記為宕機(jī),不會(huì)再給他任何 I/O 請(qǐng)求

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

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

4.安全模式

  NameNode 啟動(dòng)時(shí)會(huì)先經(jīng)過(guò)一個(gè) "安全模式" 階段

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

  在此階段 NameNode 收集各個(gè) DataNode 的報(bào)告, 當(dāng)數(shù)據(jù)塊達(dá)到最小副本數(shù)以上時(shí),會(huì)被認(rèn)為是"安全"的

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

  當(dāng)檢測(cè)到副本數(shù)不足的數(shù)據(jù)塊時(shí),該塊會(huì)被復(fù)制,直到達(dá)到最小副本數(shù)

5.效驗(yàn)和  

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

  效驗(yàn)和會(huì)作為單獨(dú)一個(gè)隱藏文件保存在命名空間下

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

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

6.回收站

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

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

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

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

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

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

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)