[HDFS學習筆記] NN 和 2NN機制

問:首先思考元數據HDFS的元數據會存在哪裏?
答:內存微信

問:那若是斷電了怎麼辦?
答: 爲了不斷電等問題形成數據丟失,HDFS還會把元數據的鏡像文件存放在磁盤,叫作FSImage.但元數據會發生不停的添加/更新操做.不停的IO很是影響效率,所以同時使用EditLog 用來保存HDFS運行開始以來的對元數據的各類操做,所以 FSImage + EditLog 即爲此時內存中的元數據一致。spa

問: 若是EditLog過大了怎麼辦?
答: 此時須要清理Editlog 同時更新磁盤上的FSImage。因而有了2NN(Secondary NameNode)blog

具體工做機制以下:
微信截圖_20200224150435.png內存

HDFS啓動時 經過加載本地的Editlog和FSImage併合併到內存中去
運行過程當中Editlog更新不斷增大
當1)定時時間到了 2)Editlog滿了 就會觸發2NN 的Checkpoint機制it

  1. NN 首先滾動正在寫的Editlog1,即 中止繼續寫入原來的Editlog1 而是把新來的操做寫入新建的Editlog2,把Editlog1和FSImage拷貝到2N
  2. 在2NN加載Editlog1和FSImage到內存併合並,生成新的FSImage.ckpt
  3. 把新的FSImage.ckpt拷貝回NN,並重命名爲FSImage
相關文章
相關標籤/搜索