3d肉蒲团之极乐宝鉴 下载,乙肝疫苗有效期,小白张艾亚
active namenode
(用以存放文件目录树,权限设置,副本数设置等),它会在指定目录下创建一个新的文件对象,比如access_20180101.log
active namenode
会不断修改元数据,而元数据是在内存的,为了防止宕机丢失,必须把它存在磁盘,但是频繁的修改磁盘数据,性能是很低的,这是大量的磁盘随机读写,所以有了上述图的方案active namenode
会写一条edits log
放到磁盘文件,不是直接修改磁盘文件内容,而是顺序追加,这个性能就高多了edits log
还会写入journalnodes
集群,通过journalnodes
会把操作日志传到standby namenode
,这就相当于是个备份服务,确保了standby namenode
内存中的元数据和active namenode
是一样的,而standby namenode
每隔一段时间会把内存里的元数据写一份到磁盘的fsimage
文件,这个文件就是全量的元数据了,不是日志记录active namenode
,替换掉内存中的元数据,再清空掉active namenode
所在磁盘上的edits log
,重新开始记录日志active namenode
突然宕机后,我们需要进行恢复,它的恢复是基于磁盘上的edits log
的,和redis的aof相同的道理,它需要重新运行一遍日志中的所有命令,当时间长了后日志可能会很大,重启时间也就会很长;standby namenode
的备份机制,就可以在节点重启时,直接从standby namenode
的fsimage
读取元数据备份,这就相当于redis的rdb恢复,速度是比较快的,读取完备份再从磁盘的edits log
读取少量的操作日志执行恢复,就完全恢复到宕机前的状态了过眼云烟本尊
这个评论者下留言,thanks♪(・ω・)ノ)参考:
用大白话告诉你小白都能看懂的hadoop架构原理
大规模集群下hadoop namenode如何承载每秒上千次的高并发访问
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
浅析我对 String、StringBuilder、StringBuffer 的理解
使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)
Springboot整合freemarker 404问题解决方案
引入mybatis-plus报 Invalid bound statement错误问题的解决方法
网友评论