HDFS存儲與架構


HDFS存儲模型

  • 以字節形式存儲
  • 文件線性切割成塊(Block):偏移量 offset (byte)
  • Block分散存儲在集群節點中
  • 單一文件Block大小一致,文件與文件可以不一致
  • Block可以設置副本數,副本無序分散在不同節點中
  • 副本數不要超過節點數量
  • 文件上傳可以設置Block大小和副本數(資源不夠開辟的進程)
  • 已上傳的文件Block副本數可以調整,大小不變(2.x 128MB 3 blocks)
  • 只支持一次寫入多次讀取,同一時刻只有一個寫入者
  • 可以append追加數據

HDFS架構模型

  • 文件元數據MetaData,文件數據    
    • 元數據
    • 數據本身
  • NameNode(主)節點保存文件元數據:單節點   posix
  • DataNode(從)節點保存文件Block數據:多節點
  • DataNode與NameNode保持心跳,提交Block列表
  • HdfsClient與NameNode交互元數據信息
  • HdfsClient與DataNode交互文件Block數據(cs)
  • DataNode 利用服務器本地文件系統存儲數據塊

HDFS架構圖

HDFS設計思想

  • 分散均勻存儲 dfs.blocksize = 128M
  • 備份冗余存儲 dfs.replication = 3




NameNode(NN)

  • 基於內存存儲 :不會和磁盤發生交換(雙向)
    • 只存在內存中
    • 持久化(單向)
  • NameNode主要功能:
    • 接受客戶端的讀寫服務
    • 收集DataNode匯報的Block列表信息
  • NameNode保存metadata信息包括
    • 文件owership和permissions
    • 文件大小,時間
    • (Block列表:Block偏移量),位置信息(持久化不存)
    • Block每副本位置(由DataNode上報)

NameNode持久化

  • NameNode的metadata信息在啟動后會加載到內存
  • metadata存儲到磁盤文件名為”fsimage”(時點備份)
  • Block的位置信息不會保存到fsimage
  • edits記錄對metadata的操作日志…>Redis
  • 二者的產生時間和過程?(format)

SecondaryNameNode(SNN)

  • 它不是NN的備份(但可以做備份),它的主要工作是幫助NN合並edits log,減少NN啟動時間。
  • SNN執行合並時機
    • 根據配置文件設置的時間間隔fs.checkpoint.period  默認3600秒
    • 根據配置文件設置edits log大小 fs.checkpoint.size 規定edits文件的最大值默認是64MB    

SNN合並流程圖


DataNode(DN)

  • 本地磁盤目錄存儲數據(Block),文件形式
  • 同時存儲Block的元數據信息文件
  • 啟動DN時會向NN匯報block信息
  • 通過向NN發送心跳保持與其聯系(3秒一次),如果NN 10分鍾沒有收到DN的心跳,則認為其已經lost,並copy其上的block到其它DN

HDFS優點

  • 高容錯性
    • 數據自動保存多個副本
    •  副本丟失后,自動恢復
  • 適合批處理
    • 移動計算而非數據
    • 數據位置暴露給計算框架(Block偏移量)
  • 適合大數據處理
    • GB 、TB 、甚至PB 級數據
    • 百萬規模以上的文件數量
    • 10K+ 節點
  • 可構建在廉價機器上
    • 通過多副本提高可靠性
    • 提供了容錯和恢復 機制

HDFS缺點

  • 低延遲數據訪問
    • 比如毫秒級
    • 低延遲與高吞吐率
  • 小文件存取
    • 占用NameNode 大量內存
    • 尋道時間超過讀取時間
  • 並發寫入、文件隨機修改
    • 一個文件只能有一個寫者
    • 僅支持append

Block的副本放置策略

  • 第一個副本:放置在上傳文件的DN;如果是集群外提交,則隨機挑選一台磁盤不太滿,CPU不太忙的節點。
  • 第二個副本:放置在於第一個副本不同的 機架的節點上。
  • 第三個副本:與第二個副本相同機架的節點。
  • 更多副本:隨機節點

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM