Hadoop HDFS 架構設計

HDFS 簡介

 Hadoop Distributed File System,簡稱HDFS,是一個分佈式文件系統。 HDFS是高容錯性的,能夠部署在低成本的硬件之上,HDFS提供高吞吐量地對應用程序數據訪問,它適合大數據集的應用程序。它具備如下幾個特色:html

1)適合存儲很是大的文件node

2)適合流式數據讀取,即適合「只寫一次,讀屢次」的數據處理模式架構

3)適合部署在廉價的機器上分佈式

但HDFS不適合如下場景(任何東西都要分兩面看,只有適合本身業務的技術纔是真正的好技術):oop

1)不適合存儲大量的小文件,由於受Namenode內存大小限制大數據

2)不適合實時數據讀取,高吞吐量和實時性是相悖的,HDFS選擇前者網站

3)不適合須要常常修改數據的場景視頻

HDFS 架構

 

HDFS的架構如上圖所示,整體上採用了Master/Slave的架構,主要有如下4個部分組成:htm

一、Clientblog

二、NameNode

整個HDFS集羣只有一個NameNode,它存儲整個集羣文件分別的元數據信息。這些信息以fsimage和editlog兩個文件存儲在本地磁盤,Client經過這些元數據信息能夠找到相應的文件。此外,NameNode還負責監控DataNode的健康狀況,一旦發現DataNode異常,就將其踢出,並拷貝其上數據至其它DataNode。

三、Secondary NameNode

Secondary NameNode負責按期合併NameNode的fsimage和editlog。這裏特別注意,它不是NameNode的熱備,因此NameNode依然是Single Point of Failure。它存在的主要目的是爲了分擔一部分NameNode的工做(特別是消耗內存的工做,由於內存資源對NameNode來講很是珍貴)。在緊急狀況下,可輔助恢復NameNode。

四、DataNode

DataNode負責數據的實際存儲,是文件存儲的基本單元。當一個文件上傳至HDFS集羣時,它以Block爲基本單位分佈在各個DataNode中,同時,爲了保證數據的可靠性,每一個Block會同時寫入多個DataNode中(默認爲3);週期性的將全部存在的Block信息發送給NameNode。

 HDFS 架構原則

1)元數據與數據分離

2)主/從架構

3)一次寫入屢次讀取

4)移動計算比移動數據更划算

一、元數據與數據分離

 

 

 

 

 

 

參考文章:

http://www.open-open.com/lib/view/open1370958803132.html

http://blog.jobbole.com/34244/

 

ZOOM 雲視頻會議網站:http://www.zoomonline.cn/

相關文章
相關標籤/搜索