活动名称节点崩溃时不会触发故障转移
failover is not fired when active name node crashes
我在由三个节点组成的集群上使用 Apache Hadoop-2.7.1
nn1 主节点名称
nn2(第二个名字节点)
dn1(数据节点)
我已经配置了高可用,nameservice 和 zookeeper 在所有三个节点上工作
它作为领导者在 nn2 上启动
首先我要提到的是
nn1 活跃,nn2 备用
当我杀死 nn1 上的名称节点时
,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 上的两个现有日志节点上
可能的原因是什么?
我的问题已通过在 hdfs-site.xml 中更改 dfs.ha.fencing.methods
解决
不仅包括 ssh 防护,还包括
的另一种 shell 防护方法
returns 总是正确的
<name>dfs.ha.fencing.methods</name>
<value>sshfence
shell(/bin/true)
</value>
如果防护失败,自动故障转移将失败,
我指定了两个选项,第二个(shell(/bin/true))总是returns成功。这样做是为了解决主 NameNode 机器出现故障并且 ssh 方法失败并且不会执行故障转移的变通方法。我们想避免这种情况,所以第二种选择是无论如何都要进行故障转移
您可以在此处找到详细信息https://www.packtpub.com/books/content/setting-namenode-ha
这似乎是由于 sshfence
屏蔽方法中的一个错误,标识为 HADOOP-15684, fixed in 3.0.4, 3.1.2, and 3.2.0 as well as backported to 2.10.0 via HDFS-14397。
我在由三个节点组成的集群上使用 Apache Hadoop-2.7.1
nn1 主节点名称
nn2(第二个名字节点)
dn1(数据节点)
我已经配置了高可用,nameservice 和 zookeeper 在所有三个节点上工作
它作为领导者在 nn2 上启动
首先我要提到的是 nn1 活跃,nn2 备用
当我杀死 nn1 上的名称节点时
,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 上的两个现有日志节点上
可能的原因是什么?
我的问题已通过在 hdfs-site.xml 中更改 dfs.ha.fencing.methods
解决不仅包括 ssh 防护,还包括
的另一种 shell 防护方法returns 总是正确的
<name>dfs.ha.fencing.methods</name>
<value>sshfence
shell(/bin/true)
</value>
如果防护失败,自动故障转移将失败, 我指定了两个选项,第二个(shell(/bin/true))总是returns成功。这样做是为了解决主 NameNode 机器出现故障并且 ssh 方法失败并且不会执行故障转移的变通方法。我们想避免这种情况,所以第二种选择是无论如何都要进行故障转移
您可以在此处找到详细信息https://www.packtpub.com/books/content/setting-namenode-ha
这似乎是由于 sshfence
屏蔽方法中的一个错误,标识为 HADOOP-15684, fixed in 3.0.4, 3.1.2, and 3.2.0 as well as backported to 2.10.0 via HDFS-14397。