HDFS基本架構及概念介紹


簡單介紹

設計思想

分而治之:將大文件、大批量文件,分布式存放在大量服務器上,以便於采取分而治之的方式對海量數據進行運算分析;

 在大數據系統中作用:

 為各類分布式運算框架(如:mapreducesparktez……)提供數據存儲服務

 重點概念:文件切塊,副本存放,元數據

HDFS概念和特性

首先,它是一個文件系統,用於存儲文件,通過統一的命名空間——目錄樹來定位文件
其次,它是分布式的,由很多服務器聯合起來實現其功能,集群中的服務器有各自的角色;

架構圖


  • namenode存儲文件系統的元數據信息  -->基於內存,不會和磁盤發生交換
  • datanode存儲實際的數據塊                       
  • datanode定時發送心跳還有塊報告信息給namenode
  • 客戶端通過與namenode通信獲取文件的元數據信息,再通過獲取到的元數據信息直接和datanode交互進行I/O操作

角色介紹

    Client:客戶端
        文件切分,文件上傳到HDFS時,Client負責將文件切分成一個個Block進行存儲
        與Namenode交互,獲取文件的元數據信息
        與Datanode交互,讀取或寫入數據
        提供一些命令來管理HDFS
        通過一些命令來訪問HDFS

 metadata:元數據

  文件owership和permissions

  文件大小和時間

  (block列表,偏移量)

  block每個副本位置(datanode上報)

 


   block:文件線性切割塊

  偏移量:offset(byte)

  分散存儲在集群節點中

  單一文件block大小一致,文件與文件可以不一致

  可以設置副本數,不能超過節點數量,必須分散在不同節點上

  已上傳文件副本數可以調整,大小不能改變

  一次寫入多次讀取,同時只允許一個用戶寫入,可以append追加數據


    NameNode:主節點
        管理 HDFS 的名稱空間(NameSpace)
        管理數據塊(Block)映射信息
        配置副本策略
        處理客戶端讀寫請求

    DataNode:從節點
        本地磁盤存儲block,文件形式

  同時存儲block的元數據信息文件

  啟動DN時向NN匯報block信息

  通過向namenode發送心跳保持聯系(3s/次),如果namenode10分鍾沒有收到心跳,則認為其已經lost,並copy其上的block到其他DataNode

    Secondary NameNode:非 NameNode 熱備。NameNode 掛掉時,它並不能馬上替換 NameNode 並提供服務
        輔助 NameNode,分擔其工作量
        定期合並 fsimage和fsedits,並推送給NameNode
        在緊急情況下,可輔助恢復 NameNode
 

(注:適合用來做數據分析,並不適合用來做網盤應用,因為,不便修改,延遲大,網絡開銷大,成本太高)

 


免責聲明!

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



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