【HADOOP】浅谈NameNode和SecondaryNameNode的工作机制

首先我们知道NameNode保存着数据的元数据信息,真正的数据存在于各个DataNode,那NameNode的元数据保存在哪里呢?

这么重要的数据肯定不可能存在于内存,内存容易丢失,那肯定是磁盘了。

那问题来了,当客户发送请求时(比如读取数据),这个请求发送到NameNode,NameNode再从磁盘寻找所需要的目标文件元数据信息,然后再发送给客户端,每次都要经过磁盘的读写,这样的效率是极其低的。

而NameNode和SecondaryNameNode本身的工作机制就很好的解决了上面的问题

  • Fsimage : 镜像文件,HDFS文件系统元数据的一个永久检查点
  • Edits: 编辑日志,存放HDFS文件系统所有更新操作的操作路径
  • Seen_txid:保存着edits最新末尾数字
    【HADOOP】浅谈NameNode和SecondaryNameNode的工作机制_第1张图片
  1. 如果第一次NameNode,会创建Fsimage和Edits文件,如果不是第一次则会加载Fsimage和未合并的Edits文件到内存中(我们集群启动完成后打开NameNode页面发现他并没有很快的变成active状态,就是因为要加载文件和接受DataNode的心跳)。
  2. 当准备就绪后,客户端就可以发送请求给NameNode,NameNode将会把客户端所请求的增删改操作(查询并不会记录,因为查询对元数据并没有更改),记录到Edits文件中
  3. 而SecondaryNa

你可能感兴趣的:(温故而知新,hadoop,hdfs,big,data)