HDFS的體系結構

山有木xi發表於2020-06-08

分散式檔案系統HDFS是一種分散式檔案系統,設計用於在商用硬體上執行,它與現有的分散式檔案系統有許多相似之處。但是,與其他的分散式檔案系統也有著很大的差異,HDFS旨在具有高容錯、部署在低成本應將、提供對應用資料的高吞吐量訪問。適用於具有大型資料集的應用程式。

HDFS採用了典型的Master/Slave系統架構,一個HDFS叢集通常包含一個NameNode節點和若干的DataNode節點,一個檔案被分成了一個或者多個資料塊,並且儲存在一組DataNode上,DataNode節點可以分佈在不同的機架。NameNode執行檔案系統的名字空間開啟、關閉、重新命名檔案或者目錄等操作,同時負責管理資料塊到具體的DataNode節點的對映。在NameNode的統一排程下,DataNode負責處理檔案系統客戶端的讀/寫請求,完成資料塊的建立、刪除和複製。

  • NameNode和DataNode

HDFS具有主從架構,NameNode節點負責叢集的任務排程,DataNode節點負責執行任務和儲存資料塊,NameNode管理檔案系統的名稱空間,維護者整個檔案系統的檔案目錄樹以及這些檔案的索引目錄。這些資訊以名稱空間映象和編輯日誌靚仔形式儲存在本地檔案系統中。從NameNode中可以獲取每個檔案的每個塊儲存在DataNode節點的位置,NameNode會在每次啟動系統時動態的重建這些資訊。客戶端透過NameNode獲取後設資料資訊,與DataNode會進行互動以訪問整個檔案系統。

單個NameNode:一個管理檔案系統名稱空間的主伺服器和管理客戶端對檔案的訪問組成。此外,還有許多DataNode:通常是群集中每個節點一個,用於管理連線到它們執行的節點的儲存。

DataNode是檔案系統的工作節點,供客戶端和NameNode呼叫並且執行具體任務,儲存檔案塊。DataNode透過心跳機制制定時向NameNode傳送所儲存的檔案塊資訊,報告其工作狀態

  • 資料塊

資料塊是磁碟進行資料讀/寫操作的最小單元。檔案以塊的形式儲存在磁碟中,檔案系統每次都能操作磁碟塊大小整數倍的資料。HDFS中的檔案也被劃分為多個邏輯塊進行儲存。HDFS中的資料庫的大小,影響到定址開銷,資料塊越小,定址開銷越大,如果資料庫設定的足夠大,從磁碟傳輸資料的時間會明顯大於定位這個資料塊開始位置所需要的時間。因而,傳輸一個由多個資料塊組成的檔案的時間取決於磁碟傳輸效率,使用者必須在資料塊大小設定上做出最佳化選擇。

HDFS作為分散式系統,使用抽象的資料塊的優勢:

  1. 透過叢集擴充套件能力可以儲存大於網路中任意一個磁碟容量的任意大小檔案

  2. 使用抽象塊而不是整個檔案作為儲存單元,可簡化儲存子系統,固定塊大小可方便後設資料和檔案資料塊的內容分開儲存

  3. 便於備份和資料容錯,提供系統可用性。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2696952/,如需轉載,請註明出處,否則將追究法律責任。

相關文章