大數據:Hadoop(HDFS 的設計思路、設計目標、架構、副本機制、副本存放策略)


一、HDFS 的設計思路

 1)思路

  • 切分數據,並進行多副本存儲;

 

 2)如果文件只以多副本進行存儲,而不進行切分,會有什么問題

  • 缺點

  1. 不管文件多大,都存儲在一個節點上,在進行數據處理的時候很難進行並行處理,節點可能成為網絡瓶頸,很難進行大數據的處理;
  2. 存儲負載很難均衡,每個節點的利用率很低;

 

 

二、HDFS 的設計目標

  • Hadoop Distributed File System(HDFS):源於Google 的 GFS 論文;
  • 設計目標

  1. 分布式存儲:根據需要,水平橫向增加節點;
  2. 運行在普通廉價的硬件上
  3. 易擴展、為用戶提供性能不錯的(如果廉價的硬件損壞,不會給用戶帶來嚴重損失)文件存儲服務;

 

 

三、HDFS架構

  • 一般一個 HDFS 的集群,由一個 NameNode(NN) 和 多個 DataNodes(DN) 組成;一般 NameNode 和 DataNodes 部署在不同的節點上;
  • NameNode

  • 管理文件系統的 namespace,以及客戶端對文件的訪問;
  • 功能:

  1. 負責客戶端請求的響應;
  2. 負責元數據(文件的名稱、副本系數、Block存放的DataNode)的管理;

 

  • DataNodes

  • 操作bolck的;一般每個節點有一個 DataNodes(集群上有幾個節點,就對應有幾個DataNodes,也一個節點也可以運行多DataNodes,不過一般不采用,使用一對一),管理文件應該存儲到哪個節點上;
  • 功能:

  1. 存儲用戶的文件對應的數據塊(Block);
  2. 定期向NameNode發送本身及其所有的block信息,健康狀況;

 

  • Blocks 是根據blocksize進行切分的;(blocksize=128M,130M==>128M + 2M)
  • namespaces:操作文件的;打開、關閉、重命名文件,或者重命名目錄;

 

 

  • 四、HDFS 的副本機制

  • HDFS 支持多層級文件存儲(文件夾里有其它文件夾),
  • 對文件系統命名空間做的任何操作,都會被記錄到 NameNode 中;
  • 一個文件的所有 Block,除了最后一個Bolck,其它所有Block的大小都是一樣的(與 Blocksize 相同);

 

 

 

 

  • 五、HDFS 的副本存放策略

  •  一般默認存放 3 份副本:也是容錯安全考慮
  • 第一個副本默認存放在當前操作的節點上;
  • 第二個副本存放在不同與當前節點所在機架的某一個節點上;
  • 第三個副本存放在與第二個副本相同機架的不同節點上;

 


免責聲明!

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



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