首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

大数据面试题百日更新_Hadoop专题(Day04)

Secondary NameNode 是合并 NameNode 的 edit logs 到 fsimage 文件中; 它的具体工作机制: (1)Secondary NameNode 询问 NameNode 是否需要 checkpoint。直接带回 NameNode 是否检查结果 (2)Secondary NameNode 请求执行 checkpoint (3)NameNode 滚动正在写的 edits 日志 (4)将滚动前的编辑日志和镜像文件拷贝到 Secondary NameNode (5)Secondary NameNode 加载编辑日志和镜像文件到内存,并合并 (6)生成新的镜像文件 fsimage.chkpoint (7)拷贝 fsimage.chkpoint 到 NameNode (8)NameNode 将 fsimage.chkpoint 重新命名成 fsimage 所以如果 NameNode 中的元数据丢失,是可以从 Secondary NameNode 恢复一部 分元数据信息的,但不是全部,因为 NameNode 正在写的 edits 日志还没有拷贝 到 Secondary NameNode,这部分恢复不了

01

hadoop namenode热备切换过程和secondarynamenode的作用

hadoop集群中一般有两个namenode,一个处于active激活状态,另一个处于StandBy状态,Active状态的NameNode负责集群中所有的客户端操作,这么设置的目的,其实HDFS底层的机制是有关系的,同一时刻一个文件,只允许一个写入方占用,如果出现多个,那么文件偏移量便会混乱,从而导致数据格式不可用,当然状态为Standby的NameNode这时候仅仅扮演一个Slave的角色,以便于在任何时候Active的NameNode挂掉时,能够第一时间,接替它的任务,成为主NameNode,达到一个热备份的效果。在HA架构里面SecondaryNameNode这个冷备角色已经不存在了,为了保持从NameNode时时的与主NameNode的元数据保持一致,他们之间交互通过一系列守护的轻量级进程JournalNode,当任何修改操作在主NameNode上执行时,它同时也会记录修改log到至少半数以上的JornalNode中,这时状态为Standby的NameNode监测到JournalNode里面的同步log发生变化了会读取JornalNode里面的修改log,然后同步到自己的的目录镜像树里面,当发生故障时,Active的NameNode挂掉后,Standby的NameNode会在它成为Active NameNode前,读取所有的JournalNode里面的修改日志,这样就能高可靠的保证与挂掉的NameNode的目录镜像树一致,然后无缝的接替它的职责,维护来自客户端请求,从而达到一个高可用的目的。

02
领券