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

hadoop namenode热备切换过程和secondarynamenode的作用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的目录镜像树一致,然后无缝的接替它的职责,维护来自客户端请求,从而达到一个高可用的目的。 

当然热备需要zookeeper了,为了达到快速容错的掌握全局的目的,Standby角色也会接受来自DataNode角色汇报的块信息,前面只是介绍了NameNode容错的工作原理,下面介绍下,当引入Zookeeper之后,为啥可以NameNode-HA可以达到无人值守,自动切换的容错。 

在主备切换上Zookeeper可以干的事: 
(1)失败探测   在每个NameNode启动时,会在Zookeeper上注册一个持久化的节点,当这个NameNode宕机时,它的会话就会终止,Zookeeper发现之后,就会通知备用的NameNode,Hi,老兄,你该上岗了。 
(2)选举机制, Zookeeper提供了一个简单的独占锁,获取Master的功能,如果那个NameNode发现自己得到这个锁,那就预示着,这个NameNode将被激活为Active状态 

那么secondarynamenode是干什么用的呢?

1、学者会见名思义的认为secondarynamenode是namenode的备份其它的,或者认为它们是一样的。实质上,它是namenode的一个快照,会根据configuration中设置的值来决定多少时间周期性的去获取namenode中的metadata及其它数据。

2、假使namenode损坏或丢失之后,无法启动hadoop这时就要人工去干预恢复到secondarynamenode中所照快照的状态,这就意味着集群的数据会或多或少的丢失和一些宕机时间,并且将secondarynamenode作为重要的namenode来处理,这就要求,尽量不要将secondarynamede和namenode放在同一台机器上。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106128.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Supesite 参数说明

    Supesite 参数说明supesite有人看到的是强大的功能,我看到的是坑爷的一些用法,第一次看到block,我晕了。对于参数一头雾水,下面收集了一些,备用吧。supesite标签调用参数详解参数:blocktype模块

    2022年7月2日
    25
  • bootstrap实现分页(实例)「建议收藏」

    bootstrap实现分页(实例)「建议收藏」写前端都会面临的一个问题就是分页,如果是纯js分页也是可以的,只是可能代码量比较大,所以今天写一个关于用bootstrap框架分页的例子,希望以后可以帮助到一些对这方面比较头疼的码农。首先需要明确的一点是,哪些数据是需要分页的,单从数据显示上其实是没有必要分页的,因为页面是可以显示的出来的,但是作为一个相对比较合格的前端,你首先要考虑的不仅仅是这个功能是不是可以实现,而是要考虑用户体验是不是好的,…

    2022年8月16日
    4
  • soapUI工具使用方法、简介、接口测试[通俗易懂]

    soapUI工具使用方法、简介、接口测试[通俗易懂]一、soapUI简介SOAP:   WebService通过Http协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息头的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC方法来调用WebService。 SOAP协议 =HTTP协议 +XML数

    2022年6月17日
    48
  • Java XML解析工具类

    Java XML解析工具类JavaXML解析工具类Java解析XML的方式有很多,这里不一一说明了,利用三方jar包,实现了一个XML工具类本身是有个需求,讲三方公司的XML请求文件中的Response里的属性赋值成java对象,没做完不需要了,只做到了解析,后续本来想利用解析出来的key进行遍历,利用FTL模板生成Java文件,有这个需求的小伙伴可以延续这个工具类。1.看看XML<?xmlversion=”1.0″encoding=”utf-8″?><!–每个协议有Request或Resp

    2022年7月21日
    14
  • matlab柱状图显示百分比_两年数据对比柱形图matlab

    matlab柱状图显示百分比_两年数据对比柱形图matlab这个小代码用于matlab柱状图显示比例及数值,函数如下:functionmyhist(x)%myhistCodebySimonLiang%Email:idignew@126.com%用于显示柱状图比例及具体数值h=histogram(x);holdon;%显示柱状图数值hBin=h.BinEdges(1:end-1)+h.B…

    2022年10月7日
    5
  • SELECT DISTINCT

    SELECT DISTINCT

    2021年8月16日
    321

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号