了解Hadoop-HA

1,Hadoop-HA为什么存在?

   正式引入Ha机制是从Hadoop2.0开始的。

   因为集群中的Namenode存在单点故障,如果只针对于一个Namenode的       集群,Namenode宕机或者发生故障,就会导致整个集群瘫痪。除非我们      的Namenode恢复正常,否则集群将会一直瘫痪.


   Namennode主要在以下两个方面影响hdfs集群

     a.Namennode发生意外,如硬件方面的损坏

     b.Namenode机器需要重启,包括软件,硬件升级,此时集群也处于瘫痪               状态

 

2.我们如何解决这种问题?

   Hadoop提供了Hdfs的高可用方案:通过增加Namenode数量的方式来解       决 问题,但是要注意,两台Namenode在同一个集群的话,一个一定要处       于active状态(对外提供服务,活跃状态),另一个处于standby状态(不       对外提供服务),这台不对外提供服务的Namenode就是用于同步active        namenode 的状态,进行完整备份,预防active namenode发生意外宕机.

   一旦active name意外宕机,standby可以很快替代active namenode工作.

   

 

3. HDFS-HA注意事项

   a.管理元数据

       两台namenode中各自保存都一份元数据.

       只有active namenode可以对edits日志文件进行写入操作,但是两个            namenode都可以读取edits

因为edits是共享的,所以要放在一个共享存储中管理.

   b.必须保证两个Namenode之间可以无密码登录(也就是配置ssh免密登          录)

   c.需要状态管理

     每个namenode里面都有个zkfailover负责监控,用zookeeper进行状态        标识,如果发生状态切换,由zkfailover负责切换

   d.要保证在同一时刻只能有一个active namenode。

   

4. HDFS-HA自动故障转移工作机制


     HDFS-HA自动故障转移增加了两个新组件:ZooKeeper和                            ZKFailoverController.


   A. ZooKeeper是维护少量协调数据,通知客户端这些数据的改变和监视客          户端故障的高可用服务。


      HA的自动故障转移依赖于ZooKeeper的以下功能:


       故障检测:集群中的每个NameNode在ZooKeeper中维护了一个持久           会话,如果机器崩溃,ZooKeeper中的会话将终止,ZooKeeper通知            另一个NameNode需要触发故障转移。


        现役NameNode选择:

        现役Namenode选择:ZooKeeper提供了一个机制保证同一时间只有一          个active namenode,  如果目前现役NameNode崩溃,Zookeeper会           给standby namenode一个特殊的排外锁以表明它可以成为active                 namenode。

  

   B.ZKFC是自动故障转移中的另一个新组件,是ZooKeeper的客户端,也监        视和管理NameNode的状态。每个运行NameNode的主机也运行了一          个ZKFC进程


      ZKFC负责:

       健康监测:ZKFC使用一个健康检查命令定期地ping与之在相同主机的           NameNode,只要该NameNode及时地响应回复健康状态ZKFC认为           该节点是健康的。如果该节点崩溃,冻结或进入不健康状态,健 康监测          器标 识该节点为非健康的。

   

        ZooKeeper会话管理:当本地NameNode是健康的,ZKFC保持一个           在ZooKeeper中打开的会话。如果本地NameNode处于active状态,           ZKFC也保持一个特殊的znode锁,该锁使用了ZooKeeper对短暂节点            的 支持,如果会话终止,锁节点将自动删除。

   

        基于ZooKeeper的选择:如果本地NameNode是健康的,且ZKFC发            现 没 有其它的节点当前持有znode锁,它将为自己获取该锁。如果成          功,则它已经赢得了选择,并负责运行故障转移进程以使它的本地                NameNode为active。故障转移进程与前面描述的手动故障转移似,            首先如果必要保护之前的现役NameNode,然后本地NameNode 转            换为active状态。

640?wx_fmt=jpeg


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值