hadoop高可用集群namenode不能自动切换
hadoop版本3.1.2。
在搭建完hadoop高可用集群后,一般会验证一下namenode在发生故障时,能否自动切换。
在停掉其中一台namenode服务后,发现剩下的namenode不能自动切换,就是说查看它们的状态还是standby。
我遇到的原因有两个:
- 没有安装psmisc,导致找不到 fuser命令。
- 各个namenode所在机器之间要能够互相免密登录,包括自己。
这时候要看日志,在其中一台namenode服务器去查看zkfc日志。以我的为例,zkfc日志显示错误如下:
可以看到是找不到 fuser命令,就是我机器没有安装 psmisc。
yum install -y psmisc
至于另外一种情况的zkfc日志错误显示如下:
我的是三台namenode,三台机之间已经能够互相免密登录,就是没有做登录本机自己也要能够免密登录。所以才会报这个错误。
解决以上两个问题后,再去查看namenode的状态,可以发现其中一台已经变成active。