HDFS原理

HDFS原理

HDFS全稱Hadoop Distributed File System,是hadoop中的一個分佈式文件系統,與傳統的文件系統不同,HDFS主針對的是大數據情景下的文件存儲。

1 區別:

普通文件系統:數據塊/磁盤塊*n = 文件系統塊的大小  
                             (512KB)          (若n<1,則n=1)

HDFS:block(64MB)獨立的存儲單元,文件可以大於磁盤大小,也可以存在不同的磁盤上。定位較快。

2 優劣

1、高容錯性    2、適合批處理    3、適合大數據處理    4、流式文件訪問    5、可構建在廉價機器上

1、低延時數據訪問    2、小文件存儲    3、併發寫入、文件隨機修改

3 框架

         

client:文件切分->block;與NN交互;與DN交互;

NameNode:master,在內存中。管理block,處理client請求

DataNode:slave,在磁盤中。存儲實際數據塊,讀寫。

SecondaryNameNode:冷備份。分擔NN工作量,合併fsiamge和fsedits,恢復NN

4 讀取和寫入

                 

                  

5 容錯處理

1、NameNode Federation

不同的NameNode管理不同的目錄,共用DN,這樣一部分NN掛掉以後不影響其他部分

2、NNHA

NameNode是唯一一個對文件元數據和file-block映射負責的地方, 當它掛了之後,包括MapReduce在內的作業都無法進行讀寫。當NameNode故障時,常規的做法是使用元數據備份重新啓動一個NameNode。採用HA的HDFS集羣配置兩個NameNode,分別處於ActiveStandby狀態。當Active NameNode故障之後,Standby接過責任繼續提供服務,用戶沒有明顯的中斷感覺。一般耗時在幾十秒到數分鐘。

1、基於NFS方案:Active NN與Standby NN通過NFS實現共享數據,但如果Active NN與NFS之間或Standby NN與NFS之間,其中一處有網絡故障的話,那就會造成數據同步問題。

             

2、基於QJM方案:

                       

ActiveNameNode會把日誌文件寫入JournalNode,StandbyNameNode從JN中讀取日誌文件和fsimage合併。而DN需要向主從節點都進行彙報。用zookeeper決定主從關係。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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