NameNode(如下簡稱NN)的工做機制:緩存
一、用戶上傳數據的操做保存內存緩存中,同時往edits.log文件寫入網絡
二、edits.log文件是一個臨時的日誌文件,且隨着edits.log文件達到必定大小以後會將數據寫入到另外一個edits.log2文件,所以會產生多個edits.log小文件異步
三、多個edits.log小文件經過SecondaryNameNode(如下簡稱SN)節點最終保存在本地的fsimage文件中的spa
四、NN每隔一段時間向SN發送checkpoint請求(fsimage和edits.log的合併)日誌
五、SN從NN上下載fsimage和edits.log文件,而後請求edits.log文件更改文件名爲edits.newip
六、SN將fsimage和edits.log在內存合併運算、整合,生成新的fsimage.checkpoint,通知NN內存
七、NN接到通知後從SN下載fsimage.checkpointit
八、NN將fsimage.checkpoint和edits.new文件改回原來的名字pip
DataNode(如下簡稱DN)的副本生成機制:下載
DN採用pipeline(管道)機制對數據進行副本的複製,客戶端從提交到DN時只有一個副本,DN根據NN傳來的各個主機造成一個管道,一旦有數據往DN的第一個節點傳輸數據時,DN就會往管道內的其餘DN節點異步經過網絡複製數據,只有當全部節點拷貝完成,這個管道纔算成功,不然DN會向NN通知複製副本失敗,NN接收到DN失敗請求,會根據拷貝好的成功的節點和失敗的節點作一個調整,從新造成新的管道(例如:有3個節點在傳輸,假如3個節點傳輸失敗,這個管道就失敗了,NN在從新選擇的時候會將傳輸成功的第2個節點與其餘非原來第3個節點的節點再次造成管理進行副本的複製)