1. 现在我们测试手动的将standby namenode转换成active namenode。请看下面:
这里发生了一个错误,告诉我们nn1已经是active状态了,我们不能强制的把nn2转换成active namenode了。
我们现在换其他的命令尝试一下:
提示我们故障转移成功了,接下来我们刷新下页面看看是否成功。
我们看到slave01机器变成了active状态了:
我们看到hadoop-yarn.dragon.org机器变成了standby状态了:
现在我们来浏览一下hadoop-yarn.dragon.org机器上的hadoop文件系统,发现已经不支持被浏览了。
现在我们来浏览一下slave01机器上的hadoop文件系统。
2. 我们来分析下forcefence 和 forceactive两个命令。
现在我们使用forcefence 命令操作,当前nn2是active状态,nn1是standby状态:
运行命令后,会出现下面的错误:
大致的意思是:认证失败,不能通过我们配置的方法去隔离。
我们配置的是通过SSH的方式进行隔离的。原因是我们没有配置两台机器的SSH免密码登录,注意自己也要免密码登录自己,现在假设我们已经配置好了。
既然我们已经配置好了,那么我们再次尝试切换active和standby节点,当前nn2是active节点,我们将nn1切换成active节点:
我们通过命令查看nn1的状态:
我们通过网页查看nn1的状态,发现已经是active状态了:
我们通过网页查看nn2的状态,发现已经是standby状态了:
现在我们使用forcefence命令来强制进行故障转移,当前nn1是active状态,nn2是standby状态。
成功后的记录如下:
现在我们来检查一下nn2机器的状态:
现在我们来检查一下nn1机器的状态,发现nn1机器已经down掉了:
ok,我们在nn1机器上通过jps命令 查看一下是没有namenode进程的:
现在我们把nn1启动起来:
我们通过jps命令查看一下是否启动起来了:
我们通过网页查看一下: