namenode && datanode

125 阅读1分钟

1. namenode 和 secondaryNameNode

1.1 NameNode的工作原理

  1. 启动NameNode的时候,直接加载编辑日志和镜像文件到内存中;如果是第一次启动,则需要NameNode格式化后,创建Fsimage和Edits文件。
  2. 客户端对元数据进行增删改的请求。
  3. NameNode记录操作日志,更新滚动日志。
  4. NameNode在内存中对元数据进行增删改。

1.2 SecondaryNameNode工作

  1. Secondary NameNode询问NameNode是否需要CheckPoint。直接带回NameNode是否检查结果。
  2. Secondary NameNode请求执行CheckPoint.
  3. NameNode滚动正在写的Edits日志。
  4. 将滚动前的编辑日志和镜像文件拷贝到Secondary NameNode。
  5. Secondary NameNode 加载编辑日志和镜像文件到内存,并合并。
  6. 生成新的镜像文件 fsimage.chkpoint。
  7. 拷贝 fsimage.chkpoint 到 NameNode。
  8. NameNode 将 fsimage.chkpoint 重新命名成 fsimage。