这种情况的出现必须是集群配置了HA。出现两个NameNode都为StandBy的状态说明zookeeper的竞选机制失效。处理这问题有两种尝试方法。(前提要配置好自动故障切换功能)
1、手动强制转化某个namenode为active
操作:在其中一台namenode上,
执行 hdfs haadmin -transitionToActive --forcemanual nn1
或者执行 hdfs haadmin -failover nn1 nn2
结果:nn1被成功转为active。但是在stop-dfs.sh后再一次start-dfs.sh后,两台namenode仍然都是standby
结论:ZK初始化的竞选文件丢失导致无法选出activate
2、通过初始化zookeeper来使状态做竞选改变
操作:在某台namenode上,执行 hdfs zkfc -formatZK # ${HADOOP_HOME}/bin路径下执行
可以任选一台StandBy状态的节点做zk的初始化。
结果:重新 start-dfs.sh后,一切正常
相关的链接:
https://www.cnblogs.com/zlslch/p/9190126.html
https://blog.youkuaiyun.com/wangyang1354/article/details/52303350/
本文详细介绍了在Hadoop高可用(HA)集群中遇到两个NameNode同时处于Standby状态的问题及解决办法。这种情况通常由Zookeeper的竞选机制失效引起。文章提供了两种解决方案:一是手动强制转换某NameNode为Active;二是通过初始化Zookeeper来重启状态竞选,最终恢复正常集群运行。
8837





