hdfs回顾

2019-04-26  本文已影响0人  建康_木子
namenode和datanode
namenode:保存两类数据fsImage和FsEditLog
FsImage:用于维护文件系统树及文件树中所有文件和文件夹的元数据
EditLog:记录所有针对文件的操作
namenode记录了所有数据块所在数据节点的位置信息,但是并不是通过持久化方式存储这些信息的,而是系统每次启动时扫描所有数据节点重构得到这些信息的.
namenode的启动:首先将FsImage的内容加载到内存中,然后执行EditLog的各项操作使得内存中的元数据保持最新.然后创建一个新的FsImage文件和一个空的EditLog文件.namenode成功启动后,所有的操作都会被写入新的EditLog文件中.namenode启动过程中处于安全模式,只能对外提供读操作,无法提供写操作,启动完成后推出安全模式,对外提供读写操作.
secondnamenode:namonode运行过程中,EditLog会变得越来越大,在namenode正常运行过程中对系统性能影响不大,但是当namenode重启时需要逐条执行EditLog内的指令使得FsImage保持最新.如果EditLog很大,将会导致namenode的启动很慢,长期处于安全模式.secondnamenode有两个作用:完成EditLog和FsImage的合并,作为namenode的检查点.
(1):EditLog和FsImage的合并:secondnamenode会定时和namenode通信,请求其停止使用EditLog,暂时将新到达的操作添加到新的EditLog.new的文件中,然后,secondnamenode把namenode中的FsImage和EditLog拉回到本地加载到内存中进行合并,合并后将新的FsImage文件发送给namenode,最后namenode用最新的FsImage文件代替旧的FsImage文件,同时用EditLog.new提到EditLog文件.
(2):检查点:只是提供了一个检查点,但是不支持热备份,因为EditLog.new的内容secondnamenode没有.
上一篇下一篇

猜你喜欢

热点阅读