当活动名称节点崩溃时不会触发故障转移

qhhrdooz  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(343)

我在由三个节点组成的集群上使用apachehadoop-2.7.1
nn1主机名节点
nn2(第二名称节点)
dn1(数据节点)
我已经配置了高可用性,nameservice和zookeeper在这三个节点上都工作
它是从nn2开始的
首先我要提到的是,nn1是活动的,nn2是备用的
当我杀死nn1上的name节点时
,nn2变为活动状态,因此发生自动故障转移
但在以下情况下(当nn1处于活动状态,nn2处于备用状态时,我将应用此情况),即:
当我关闭nn1(nn1整个崩溃)
nn2保持待命状态,不会变为活动状态,因此不会发生自动故障切换
日志中有明显错误

Unable to trigger a roll of the active NN(which was nn1 and now it is closed ofcourse)

nn2和dn1上的两个现有日志节点不应该发生自动故障转移吗
可能的原因是什么?

5kgi1eie

5kgi1eie1#

通过修改hdfs-site.xml中的dfs.ha.fenging.methods,我的问题得到了解决
不仅包括ssh围栏,还包括另一个shell围栏方法
返回始终为真

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

如果fenging失败,自动故障转移将失败,我指定了两个选项,第二个选项(shell(/bin/true))总是返回success。这样做是为了解决主namenode机器停机,ssh方法将失败,并且不会执行故障转移的情况。我们希望避免这种情况,所以第二种选择是故障转移
你可以在这里找到细节https://www.packtpub.com/books/content/setting-namenode-ha

相关问题