我在由三个节点组成的集群上使用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上的两个现有日志节点不应该发生自动故障转移吗
可能的原因是什么?
1条答案
按热度按时间5kgi1eie1#
通过修改hdfs-site.xml中的dfs.ha.fenging.methods,我的问题得到了解决
不仅包括ssh围栏,还包括另一个shell围栏方法
返回始终为真
如果fenging失败,自动故障转移将失败,我指定了两个选项,第二个选项(shell(/bin/true))总是返回success。这样做是为了解决主namenode机器停机,ssh方法将失败,并且不会执行故障转移的情况。我们希望避免这种情况,所以第二种选择是故障转移
你可以在这里找到细节https://www.packtpub.com/books/content/setting-namenode-ha