HDFS與HADOOP


 

 

 

 

 

再寫  HDFS Federation機制的時候,發現基礎不扎實,需要將之前的hadoop再詳細記錄一下原理(重點只說Hadoop2.0版本):

 

Hadoop2.0版本,引入了Yarn。核心:HDFS+Yarn+Mapreduce

Yarn是資源調度框架。能夠細粒度的管理和調度任務。此外,還能夠支持其他的計算框架,比如spark等。

存儲的基礎知識以及原理:

元數據信息和具體數據,分別對應namenode和datenode:

namenode工作職責:

1.要知道管理有哪些機器節點,即有哪些datanode。比如ip信息等。

2.要管理文件信息,文件名、文件多大、文件被切成幾塊、以及每一塊的存貯位置信息(存在哪個datanode節點上了),即管理元數據信息。

3.要有一個機制要知道集群里datanode節點的狀態變化。可以rpc心跳機制來做到。

4.namenode存在單點故障問題,可以再引入一台管理者節點。

5.datanode掛掉后,可能數據就丟失,文件就不完整了,要有一個備份機制,一般來說,一個文件塊,有3個備份,本機一份,同一機架的其他datanode有一份,另外一機器的機器上有一份。

 

管理元數據信息,文件名,文件大小,文件塊信息等。

namdenode把元數據信息存到內存里,為了快速查詢,此外為了應對服務宕機而引起的元數據丟失,也要持久化到本地文件里。

namdenode不存儲具體塊數據,只存儲元數據信息;datanode用於負責存儲塊數據。

fsimageedits

fsimage 文件,記錄元數據信息的文件

edits文件,記錄元數據信息改動的文件。只要元數據發生變化,這個edits文件就會有對應記錄。

fsimage和edits文件會定期做合並,這個周期默認是3600s。fsimage根據edits里改動記錄進行元數據更新。

元數據信息如果丟失,HDFS就不能正常工作了。

hadoop namenode -format 這個指令實際的作用時,創建了初始的fsimage文件和edits文件。

namenode對於元數據信息的管理,放在內存一份,供訪問查詢,也會通過fsimage和edits文件,將元數據信息持久化到磁盤上。

Secondarynamenode

負責將fsimage文件定期和edits文件做合並,合並之后,將合並后的元數據文件fsimage傳給namenode。這個SN相當於namenode輔助節點。

Hadoop集群最開始啟動的時候,創建Fsimage和edits文件,這個namenode做的,此外,namenode會做一次文件合並工作,這么做的目的是確保元數據信息是最新的,以為上次停集群的時候,可能還沒來的及做合並。但以后的合並工作,就交給SN去做了。這種SN機制是Hadoop1.0的機制。

結論:Hadoop1.0的SN達不到熱備效果,達不到元數據的實時更新,也就意味着了當namenode掛了的時候,元數據信息可能還會丟失,所以,Hadoop1.0版本的namenode還是單點故障問題。

 

datanode:

數據節點。用於存儲文件塊。為了防止datanode掛掉造成的數據丟失,對於文件塊要有備份,一個文件塊有三個副本。

 

 

 

 

 

 

 

 

 

參考:https://www.cnblogs.com/tieandxiao/p/8799287.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM