[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
相关文章
相关标签/搜索