在配置ha高可用的配置中,按照网上博客教程配置hdfs的故障自动转移失败,
举例来说:bigdata1和bigdata2这两个namenode节点
配置完成后,将bigdata1设置为active bigdata2设置为standby
然后用kill -9 xxxx杀死bigdata1的进程,发现,bigdata2并没有自动转换成active,依然是standby
查看namenode节点状态命令:
[root@hadoop1 hadoop-2.5.0]# bin/hdfs haadmin -getServiceState nn1
active
[root@hadoop2 hadoop-2.5.0]# bin/hdfs haadmin -getServiceState nn2
standby
解决办法:
修改hdfs-site.xml中的配置文件,其中密钥的地址配错了,密钥地址应该改成自己对应的目录下,不能完全按照教程上的写,另外加上自动转移的配置(我登陆的用户使hadoop)更改后,关闭集群,重新启动,自动转移故障成功。
<!-- 这个是使用sshfence隔离机制时才需要配置ssh免登陆 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<!--这是配置自动切换的方法,有多种使用方法,具体可以看官网,在文末会给地址,这里是远程登录杀死的方法 -->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
<value>shell(/bin/true)</value>
</property>