HDFS詳解

結構:一個HDFS集羣是由一個NameNode、一個Secondary NameNode和若干個DataNode組成。oop

1)NameNode:

	概念:NameNode是HDFS主從結構中主角色的扮演者,它維護着整個文件系統的目錄樹,維護信息(即HDFS的元數據)存儲在本地的fsimage文件和edits文件中。
	
		fsimage:文件系統鏡像文件,內存中的HDFS元數據序列化到磁盤上的文件,即HDFS元數據的快照,NameNode啓動的時候,默認會加載最新的fsimage。
		edits:	fsimage的編輯日誌。
		fstime:最近一次checkpoint的時間。
		
	特色:
		1)NameNode始終在內存中保存metadata,用於處理「讀」請求。
		2)NameNode收到「寫」請求後,會首先向edits文件中添加日誌,成功添加日誌後,纔會去修改內存中的元數據,而且向客戶端返回。

2)Secondary NameNode:

	概念:用於按期合併文件系統鏡像和它的編輯日誌。
	
	說明:NameNode將改動的內容寫到edits中,Secondary NameNode將按期地合併fsimage和edits。
	
	執行過程:
		1)通知NameNode切換edits文件。
		2)從NameNode上下載fsimage文件和edits文件。
		3)把兩者合併(先將fsimage加載到內存,而後合併edits),生成新的fsimage文件,並保存在本地。
		4)將新生成的fsimage文件推送給NameNode,NameNode會用最新的fsimage文件替換掉舊的fsimage文件
		
	默認觸發合併的時機:每小時合併一次 或 edits文件達到64MB時進行合併

3)DataNode:

	概念:DataNode是HDFS主從結構中從角色的扮演者,它在本地文件系統存儲文件塊數據,並在NameNode的調度下進行數據塊的建立、刪除和複製工做。

特色:性能

1)適合存儲超大文件。
2)運行於廉價的硬件之上。
3)流式數據訪問:HDFS認爲,一次寫入,屢次讀取是最高效的訪問模式。

短板:優化

1)實時的數據訪問弱:因爲HDFS針對高數據吞吐量作了優化,故犧牲了讀取數據的速度,對於響應時間是秒或毫秒的數據訪問,可使用HBase。
2)會佔用大量內存:當hadoop啓動時,NameNode會將全部的元數據讀到內存中,以此來構建目錄樹。
3)HDFS中的文件只能有一個寫入者,而且只能在文件末尾添加數據。

相關概念:日誌

1)文件塊:
	1>說明:HDFS中的文件塊默認大小:hadoop1.0爲64MB;hadoop2.0爲128MB,能夠經過hdfs-site.xml文件的dfs.block.size屬性配置。	
	2>優勢:
		1)能夠儲存比磁盤大的文件:經過把文件分紅若干分片實現。
		2)實現了元數據和數據的分開儲存和管理。
		3)容錯性高。
	3>文件塊放置的策略:
		一個文件塊默認會有3份備份,一份放在NameNode指定的DataNode上,另外一份放在與指定的DataNode不在同一臺機器上的DataNode上,最後一份放在與指定的DataNode在同一機架(Rack)上的DataNode上。
		優勢:解決了同一機架中失敗的狀況以及不一樣機架之間的數據拷貝會帶來的性能問題。
相關文章
相關標籤/搜索