第二名称节点(Secondary NAmeNode)的“检查点”作用
HDFS中的名称节点(NameNode)
- 名称节点:负责管理分布式文件系统的命名空间,里面包含了两个核心的数据结构,即FsImage和EditLog。FsImage用户文件树以及所有的文件和文件夹的元数据。EfitLog记录的是文件的增删改查。
- 首次安装format格式化就是在本地生成FsImage。首次安装format格式化就是在本地生成FsImage。
- HDFS的更新都会被写入到FsImage中而不是EditLog,因为对于分布式而言,FsImage非常庞大,直接对FsImage速度非常慢。HDFS的更新都会被写入到FsImage中而不是EditLog,因为对于分布式而言,FsImage非常庞大,直接对FsImage速度非常慢。
- 数据节点(DataNode):定期向名称节点发送自己的存储块的列表。数据节点(DataNode):定期向名称节点发送自己的存储块的列表。
第二名称节点
因为HDFS文件会逐渐地变大,不断变大的EditLog文件通常不会对系统文件产生影响,但是当EditLog很大时,使得在HDFS重启时,将EditLog合并到FsImage中的过程十分缓慢,系统长期处于“安全模式”,用户的使用收到影响。
HDFS的第二名称节点(secondary NameNode)的作用:完成EditLog合并到FsImage的过程,缩短合并的重启时间,其次作为“检查点”保存元数据的信息。
如图,EditLog合并到FsImage中的过程:名称节点会生成新的EditLog.new来记录t2时刻以后的数据,EditLog和FsImage会被拉到第二名称节点中,合并成为FsImage.ckpt,在t1时刻替换名称节点中的FsImage。
这样会出现一问题,如果是t2到t1时刻之间出现了问题,FsImage中的数据会丢失,所以说第二名称节点只是起到了“检查点”的作用而绝非“热备份”。