1. 程式人生 > >hadoop啟動過程(二)secondNameNode

hadoop啟動過程(二)secondNameNode

 

作用:定期將namenode的fsimage和edits合併(資料或者操作不多的時候可以關閉 ),可加速hdfs啟動(如果edits很多的話,開啟會很難)

 

SecondNameNode:

它會定期的和namenode就行通訊來完成整個的備份操作(????更新fsimage操作)。具體的操作如下:

SecondaryNameNode的工作過程:

1. SecondaryNameNode會定期和NameNode通訊,請求其停止使用EditLog檔案,暫時將新的寫操作寫到一個新的檔案edit.new上來,這個操作是瞬間完成,上層寫日誌的函式完全感覺不到差別;

2. SecondaryNameNode通過HTTP GET方式從NameNode上獲取到FsImage和EditLog檔案,並下載到本地的相應目錄下;

3. SecondaryNameNode將下載下來的FsImage載入到記憶體,然後一條一條地執行EditLog檔案中的各項更新操作,使得記憶體中的FsImage保持最新;這個過程就是EditLog和FsImage檔案合併;

4. SecondaryNameNode執行完(3)操作之後,會通過post方式將新的FsImage檔案傳送到NameNode節點上

5. NameNode將從SecondaryNameNode接收到的新的FsImage替換舊的FsImage檔案,同時將edit.new替換EditLog檔案,通過這個過程EditLog就變小了

 

除了這個自帶的備份操作,還需要進行人工的備份,把一份fsimage到多個地方進行備份,萬一namenode的節點壞了呢。