大型分佈式文件系統HDFS的整體架構 原

1 概述

HDFS是分佈式文件系統,具有高度容錯能力,運行在廉價的機器上。HDFS提供對應用程序數據的高吞吐量訪問,適用於具有大型數據集的應用程序。

2 HDFS特性

(1)可用於存儲超大文件,如(GB,TB,PB)級別的文件。

(2)可運行在廉價的硬件之上,HDFS通過自身的容錯機制來保證數據的安全性

(3)流式數據訪問,支持一次寫入、多次讀取的高效訪問模式。

(4)適合數據訪問高吞吐量的應用場景,不適合要求低延時數據訪問的應用場景。

(5)爲了保證數據訪問的高效性,HDFS不支持多個寫入操作,也不支持在文件的任意位置進行修改,但不排除後續會支持這些操作。

本文講解的是Hadoop2.x發行版

3 HDFS數據塊

HDFS的數據塊默認大小爲128MB,之所以設置這麼大的塊佔用空間,主要是爲了減少磁盤的最小化尋址開銷,HDFS上的文件會被切割爲以塊大小爲單位的多個分塊,爲了保證數據的安全性,每個數據塊都會被複制到多個服務節點中進行備份(默認爲3個),通過應用程序也可以指定每個文件的副本數。如果發現一個塊不可用,系統會從其他地方讀取另一個副本塊。

4 NameNode 和 DataNodes

HDFS屬於master/slave架構,由一個名稱節點(NameNode)與多個數據節點(DataNodes)構成。

(1)NameNode:存放元數據(名稱,副本數、權限、塊列表......),負責名稱空間以及客戶端(client)的訪問

(2)DataNode:負責提供來自文件系統客戶端的讀取和寫入請求,並且定期向NameNode發送他們所存儲的塊的列表信息。

NameNode的元數據中主要由鏡像文件(fsimage)與編輯日誌文件(edits)組成,需要說明的是元數據中並沒有存儲每個數據塊所在的服務器節點,而是在啓動HDFS集羣的時候由每個DataNode節點自動上報數據信息給NameNode服務節點。

通過HDFS自帶的離線查看工具來查看鏡像文件與編輯日誌文件

(1)查看fsimage鏡像文件:$ hdfs oiv -p XML -i 鏡像文件 -o 輸出文件路徑

(1)查看edits日誌文件:$ hdfs oev -p XML -i 鏡像文件 -o 輸出文件路徑

5 NameNode的容錯機制

系統中NameNode是非常重要的,如果NameNode節點掛掉,或者NameNode的元數據毀壞,整個文件系統將無法正常使用,因此對NameNode的容錯機制非常重要,Hadoop提供了兩種保護措施。

(1)NameNode HA With QJM 或者 NameNode HA With NFS

(2)通過一個輔助節點及SecondaryNameNode來定期備份元數據

在NameNode失效後,爲了更加快速的切換到NameNode的正常服務狀態,一般會選擇第一種機制,第一種機制的具體實現細節後續文章會在做講解。

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章