Secondary NameNode從它的名字上來看,給人的感受是NameNode的備份。但實際上不是這樣。那到底Secondary NameNode在HDFS中扮演的是什麼角色呢?node
從名字上來看Secondary NameNode與NameNode,都包含着NameNode,這二者是否是存在某種關係呢,先來看下NameNode是幹什麼的。微信
NameNode主要是用來保存HDFS的元數據信息,好比命名空間信息,快信息等。當它運行的時候,這些信息會保存在內存中。同時這部分信息也會持久化到磁盤上。oop
只有在NameNode重啓時,edits纔會合併到fsimage文件中,從而獲得一個文件系統的最新快照。可是在產品集羣中NameNode是不多重啓的,這也意味着當NameNode運行了很長時間後,edits文件會變得很大。就會面臨以下問題:網站
這個時候Secondary NameNode就出場了,Secondary NameNode能夠來幫助解決上面問題,它的職責就是用來合併NameNode的edits到fsimage中。spa
HDFS文件系統的寫操做不是直接被修改到fsimage中,而是edits中,Secondary NameNode節點負責將二者進行整合。日誌
checkpoint過程以下:視頻
Secondary NameNode的整個目的在HDFS中提供一個Checkpoint Node,它只是NameNode的一個助手節點進程
如今,咱們明白Secondary NameNode所作的是在文件系統這設置一個Checkpoint來幫助NameNode更好的工做;它不是取代NameNode,也不是NameNode的備份。內存
Secondary NameNode的檢查點進程啓動,是由兩個配置參數控制的:產品
關於NameNode是何時將改動寫到edit logs中的?
這個操做其實是由DataNode的寫操做觸發的,當咱們往DataNode寫文件時,DataNode會跟NameNode通訊,告訴NameNode什麼文件的第幾個block放在它那裏,NameNode這個時候會將這些元數據信息寫到edit logs文件中。
瞭解更多詳情請登陸超人學院網站http://www.crxy.cn?sxy或者關注超人學院微信號:CRXY-CN
或者觀看超人學院免費公開課視頻
https://ke.qq.com/course/53102#term_id=100145289