什么是HDFS


HDFS是什么:HDFS即Hadoop分布式文件系統(Hadoop Distributed Filesystem),以流式數據訪問模式來存儲超大文件,運行於商用硬件集群上,是管理網絡中跨多台計算機存儲的文件系統。

HDFS不適合用在:要求低時間延遲數據訪問的應用,存儲大量的小文件,多用戶寫入,任意修改文件。

HDFS數據塊:HDFS上的文件被划分為塊大小的多個分塊,作為獨立的存儲單元,稱為數據塊,默認大小是64MB。

使用數據塊的好處是:

一個文件的大小可以大於網絡中任意一個磁盤的容量。文件的所有塊不需要存儲在同一個磁盤上,因此它們可以利用集群上的任意一個磁盤進行存儲。
簡化了存儲子系統的設計,將存儲子系統控制單元設置為塊,可簡化存儲管理,同時元數據就不需要和塊一同存儲,用一個單獨的系統就可以管理這些塊的元數據。
數據塊適合用於數據備份進而提供數據容錯能力和提高可用性。

HDFS的三個節點:Namenode,Datanode,Secondary Namenode

Namenode:HDFS的守護進程,用來管理文件系統的命名空間,負責記錄文件是如何分割成數據塊,以及這些數據塊分別被存儲到那些數據節點上,它的主要功能是對內存及IO進行集中管理。

Datanode:文件系統的工作節點,根據需要存儲和檢索數據塊,並且定期向namenode發送他們所存儲的塊的列表。

Secondary Namenode:輔助后台程序,與NameNode進行通信,以便定期保存HDFS元數據的快照。

HDFS Federation(聯邦HDFS):

通過添加namenode實現擴展,其中每個namenode管理文件系統命名空間中的一部分。每個namenode維護一個命名空間卷,包括命名空間的源數據和該命名空間下的文件的所有數據塊的數據塊池。

HDFS的高可用性(High-Availability)

Hadoop的2.x發行版本在HDFS中增加了對高可用性(HA)的支持。在這一實現中,配置了一對活動-備用(active-standby)namenode。當活動namenode失效,備用namenode就會接管它的任務並開始服務於來自客戶端的請求,不會有明顯的中斷。

架構的實現包括:

namenode之間通過高可用的共享存儲實現編輯日志的共享。
datanode同時向兩個namenode發送數據塊處理報告。
客戶端使用特定的機制來處理namenode的失效問題,這一機制對用戶是透明的。
故障轉移控制器:管理着將活動namenode轉移給備用namenode的轉換過程,基於ZooKeeper並由此確保有且僅有一個活動namenode。每一個namenode運行着一個輕量級的故障轉移控制器,其工作就是監視宿主namenode是否失效並在namenode失效時進行故障切換。

 


免責聲明!

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



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