NN和2NN工作机制

一:NameNode的元数据怎么存储比较合适?

    假如存储在磁盘里,因为NameNode需要频繁的响应客户端请求进行读写,效率会比较低。假如存在内存里的话,

  一旦断电那么元数据就全部丢失了。

    因此有了FsImage,它是存在磁盘里的元数据备份文件。每当NameNode启动时,从FsImage里拿取元数据放在内存里。

  这样的话读写是在内存里,高效,磁盘里也有备份,断电不会丢失。但是,每次元数据进行读写操作时,都要同时更新内存

  里的元数据和磁盘里的元数据,才能保证数据统一完整,那么这样效率其实更低。

    于是又出现了Edits文件,它也在磁盘上,但是它不会存储全部的元数据,每当元数据有变动时,修改内存中的元数据并追

  加到Edits里,因为Edits只进行追加操作,所以效率高。然后定时的将Edits里的数据和FsImage进行合并(合并由2NN完成),

  这就同时具有了高效和安全。

 

二:NN和2NN工作机制

 

 

 

 

 

 

    

 

posted @ 2020-03-15 20:01  拔丝小红薯  阅读(700)  评论(0编辑  收藏  举报