hadoop ha配置后一个namenode不能自动failover,相当于没有配置ha


          配置了hadoop ha后,namenode kill后,另一个namenode没有变为active,相当于ha配置白配了。然后看了官网的ha配置,发现是dfs.ha.fencing.methods属性的问题。

          我原先是这样配置的:

<property>
  <name>dfs.ha.fencing.methods</name>
  <value>sshfence</value>
</property>
<property>
  <name>dfs.ha.fencing.ssh.private-key-files</name>
  <value>/home/hadoop/.ssh/id_rsa</value>
</property>

          后来改掉就可以了:

<property>
  <name>dfs.ha.fencing.methods</name>
  <value>shell(/bin/true)</value>
</property>

         

        系统任意时间内只有一个namenode处于active状态,所以系统不能有两个active的NameNode。在发生failover时fencing的方法可以是sshfence和shell来防止有两个active的namenode。

        sshfence -----  使用ssh登录到active的namenode节点,然后杀掉进程。所以需要ssh无密码登录,以及指定私钥的位置。

        shell ------   是指运行shell命令来防止。

        QJM方式本身有fencing功能,能保证只有一个namenode可以写journalnodes文件。但是在发生failover时,原来的active的namenode可能还在读请求,可能读到过时的数据,所以还是需要配置dfs.ha.fencing.methods方法,可以提高系统的可用性,可以配置为一个返回成功的方法(没有fencing作用),例如shell(/bin/true)。



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值