Secondary NameNode从它的名字上来看,给人的感受是NameNode的备份。但实际上不是这样。那到底Secondary NameNode在HDFS中扮演的是什么角色呢?node
从名字上来看Secondary NameNode与NameNode,都包含着NameNode,这二者是否是存在某种关系呢,先来看下NameNode是干什么的。微信
NameNode主要是用来保存HDFS的元数据信息,好比命名空间信息,快信息等。当它运行的时候,这些信息会保存在内存中。同时这部分信息也会持久化到磁盘上。oop
只有在NameNode重启时,edits才会合并到fsimage文件中,从而获得一个文件系统的最新快照。可是在产品集群中NameNode是不多重启的,这也意味着当NameNode运行了很长时间后,edits文件会变得很大。就会面临以下问题:网站
这个时候Secondary NameNode就出场了,Secondary NameNode能够来帮助解决上面问题,它的职责就是用来合并NameNode的edits到fsimage中。spa
HDFS文件系统的写操做不是直接被修改到fsimage中,而是edits中,Secondary NameNode节点负责将二者进行整合。日志
checkpoint过程以下:视频
Secondary NameNode的整个目的在HDFS中提供一个Checkpoint Node,它只是NameNode的一个助手节点进程
如今,咱们明白Secondary NameNode所作的是在文件系统这设置一个Checkpoint来帮助NameNode更好的工做;它不是取代NameNode,也不是NameNode的备份。内存
Secondary NameNode的检查点进程启动,是由两个配置参数控制的:产品
关于NameNode是何时将改动写到edit logs中的?
这个操做其实是由DataNode的写操做触发的,当咱们往DataNode写文件时,DataNode会跟NameNode通讯,告诉NameNode什么文件的第几个block放在它那里,NameNode这个时候会将这些元数据信息写到edit logs文件中。
了解更多详情请登陆超人学院网站http://www.crxy.cn?sxy或者关注超人学院微信号:CRXY-CN
或者观看超人学院免费公开课视频
https://ke.qq.com/course/53102#term_id=100145289