hadoop高可用集群namenode不能自动切换

hadoop版本3.1.2。

在搭建完hadoop高可用集群后,一般会验证一下namenode在发生故障时,能否自动切换。

在停掉其中一台namenode服务后,发现剩下的namenode不能自动切换,就是说查看它们的状态还是standby。

我遇到的原因有两个:

  1. 没有安装psmisc,导致找不到 fuser命令。
  2. 各个namenode所在机器之间要能够互相免密登录,包括自己。

这时候要看日志,在其中一台namenode服务器去查看zkfc日志。以我的为例,zkfc日志显示错误如下:

hadoop高可用集群namenode不能自动切换

可以看到是找不到 fuser命令,就是我机器没有安装 psmisc。

yum install -y psmisc

至于另外一种情况的zkfc日志错误显示如下:

hadoop高可用集群namenode不能自动切换

我的是三台namenode,三台机之间已经能够互相免密登录,就是没有做登录本机自己也要能够免密登录。所以才会报这个错误。

解决以上两个问题后,再去查看namenode的状态,可以发现其中一台已经变成active。

hadoop高可用集群namenode不能自动切换