HDFS分佈式文件系統

HDFS簡介

HDFS是Hadoop核心組成, 是分佈式存儲服務

HDFS是分佈式文件系統中的一種緩存

HDFS的重要概念

HDFS經過統一的命名空間目錄樹來定位文件
另外, 它是分佈式的, 由不少服務器聯合起來實現其功能. 集羣中的服務器有各自的角色(分佈式本質是拆分, 各司其職)
  • 典型的Master/Slave架構
    HDFS的架構是典型的Master/Slave結構
    HDFS集羣每每是一個NameNode+多個DataNode組成
    NameNode是集羣的主節點, DataNode是集羣的從節點
  • 分塊存儲(block機制)
    HDFS中的文件在物理是分塊存儲(block)的, 塊的大小能夠經過配置參數來指定
    Hadoop2.x版本中默認的block大小是128M
  • 命名空間(NameSpace)
    HDFS支持傳統的層次型文件組織結構.
    用戶或者應用程序能夠建立目錄, 而後將文件保存在這些目錄裏.
    文件系統命名空間的層次結構和大多數現有的文件系統相似: 用戶能夠建立, 刪除, 移動或重命名文件

    NameNode負責維護文件系統的命名空間, 任何對文件系統命名空間或屬性的修改都將被NameNode記錄下來安全

  • NameNode元數據管理
    咱們把目錄結構文件分塊位置叫作元數據
    NameNode的元數據記錄每個文件所對應的block信息(block的id, 以及所在的DataNode節點)
  • DataNode數據存儲
    文件的各個block的具體存儲管理由DataNode節點來承擔
    一個block會有多個DataNode來存儲, DataNode會定時向NameNode來彙報本身持有的block信息
  • 副本機制
    爲了容錯, 文件的全部block都會有副本
    每一個文件的block大小和副本系數都是可配置的
    應用程序能夠指定某個文件的副本數目
    副本系數能夠在文件建立的時候指定, 也能夠在以後改變
    副本數量默認是3個
  • 一次寫入, 屢次讀出
    HDFS設計成適應一次寫入, 屢次讀出的場景, 且不支持文件的隨機修改 . (支持追加寫入, 不支持隨機更新)
    正由於如此, HDFS適合用來作大數據分析的底層存儲, 並不適合用來作網盤等應用 (修改不方便, 延遲大, 網絡開銷大, 成本過高)

HDFS架構

image.png

  • NameNode: HDFS集羣的管理者, Master服務器

    • 維護管理HDFS的命名空間(NameSpace)
    • 維護副本策略
    • 記錄文件塊(Block)的映射信息
    • 負責處理客戶端讀寫請求
  • DataNode: NameNode下達命令, DataNode執行實際操做, Slave網絡

    • 保存實際的數據塊
    • 負責數據塊的讀寫
  • Client: 客戶端架構

    • 上傳文件到HDFS的時候, Client負責將文件切分紅Block, 而後進行上傳
    • 請求NameNode交互, 獲取文件的位置信息
    • 讀取或寫入文件, 與DataNode交互
    • Client可使用一些命令來管理HDFS或訪問HDFS

image.png

HDFS讀寫解析

HDFS讀數據流程

image.png

  • 客戶端經過Distributed FileSystem向NameNode請求下載文件, NameNode經過查詢元數據找到文件塊所在的DataNode地址
  • 挑選一臺DataNode(就近原則, 而後隨機)服務器, 請求讀取數據
  • DataNode開始傳輸數據給客戶端 (從磁盤裏面讀取數據輸入流, 以Packet爲單位來作校驗)
  • 客戶端以Packet爲單位接收, 先在本地緩存, 而後寫入目標文件

HDFS寫數據流程

image.png

  • 客戶端經過Distributed FileSystem模塊向NameNode請求上傳文件, NameNode檢查目標文件是否已存在, 父目錄是否存在
  • NameNode返回是否能夠上傳
  • 客戶端請求第一個Block上傳到哪幾個DataNode服務器上
  • NameNode返回3個DataNode節點, 分別是dn1, dn2, dn3
  • 客戶端經過FSDataOutputStream模塊請求dn1上傳數據, dn1收到請求會繼續調用dn2, 而後dn2調用dn3, 將這個通訊管道創建完成
  • dn1, dn2, dn3逐級應答客戶端

NN與2NN

NN故障處理

Hadoop的限額與歸檔以及集羣安全模式

相關文章
相關標籤/搜索