(一)HDFS總體架構

1、背景

海量的非結構化數據,幾乎沒法梳理成一個個的字段,來存儲在關係型數據庫中。所以實際應用中,對於這類數據需要考慮數據如何存儲。數據如何計算的問題。

2、hadoop兩個核心

  • HDFS(以分佈式方式來存儲海量數據)
  • MapReduce(以HDFS上的數據爲基礎進行計算)

3、大數據特點

  • Volume(大量)
  • Velocity(持續高速增長)
  • Variety(多樣性)
  • value(價值密度低,數據很多但真正有價值的數據少)
  • Veracity(真實性)

4、Hadoop版本

hadoop有第一代和第二代,第二代與第一代最顯著的特點是:第二代比第一代多了一個資源調度框架(yarn)。

hadoop第二代上可以跑多種計算框架,例如spark,MapReduce等。

目前3.0版本已經發布。

5、HDFS架構

如圖:

  • 分佈式存儲數據:一個文件拆分成了四塊,分別保存在機架1中的四臺服務器中(datanode
  • 引入namenode:若要獲取文件,需要知道該文件拆成哪些塊,分別保存在哪等。namenode就是專門管理文件塊信息。
  • 避免namenode單點故障:有一個SecondaryNameNode服務作爲namenode的備用。
  • 引入副本冗餘機制:此處採用三副本機制(磁盤利用率1/3),以黃色塊爲例,在機架1的第四臺服務器上保本一個副本,在機架2的第一臺服務器上保存了一個副本,以防機架1全部宕機。

namenode作用:

  • namenode數據在內存中,供客戶端快速查詢。爲防數據丟失,也會在磁盤保存鏡像文件。
  • 管理整個分佈式文件系統的元數據信息,一個文件多大,有幾塊,每個塊多大,分別存儲在那些節點等。
  • 管理整個集羣的狀態,比如所有datanode時間間隔會向namenode發起一個心跳包,namenode時間間隔內沒有收到心跳包,則判定爲該datanode宕機。

1.0版本namenode單點故障解決方案:

  • SecondaryNameNode是1.0版本的方案
  • 針對hdfs的操作,會有對應的操作記錄。每時間間隔,SecondaryNameNode會把操作記錄和當前鏡像文件合併,生成最新的鏡像文件。同時把數據同步給自己
  • SecondaryNameNode不是實時熱備,可能會造成元數據的丟失。

2.0版本namenode單點故障解決方案

  • 考慮到1.0版本的弊端,2.0版本提供實時熱備,解決方案如下圖
  • 但是使用僞分佈模式搭建hadoop,還是會使用SecondaryNameNode機制處理

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