4、 HDFS HA机制的可用性验证
4.1手动切换模式验证
这里我使用的验证方法主要是模拟ActiveNameNode进程死掉的情况,另外Active NameNode所在节点发生宕机的情况也是一样的。现在集群中nn1为Active NameNode,nn2为StandBy NameNode,具体步骤:
步骤1:进入nn1所在节点即Hadoop-master,运行kill -9 $NameNodePID将nn1杀死(此时集群中只有一个StandByNameNode)。
步骤2:往集群上传文件,或者执行hadoop fs相关命令提示连接不到(此时,集群中没有Active NameNode来处理客户端的RPC请求)。看错误信息:
步骤3:恢复集群,将StandBy NameNode转换为Active NameNode。进入nn2所在节点即hadoop-slave01执行:
$HADOOP_HOME/bin/hdfshaadmin -transitionToActive nn2
此时,nn2已经变成为Active NameNode,看50070:
步骤4:再次执行hadoop fs相关命令或者上传文件,一切正常。
步骤5:另外,不要忘记集群虽然是恢复了,但是此时已经没有了StandBy NameNode了,这是直接进入nn1所在节点启动NameNode进程,此时nn1为Standby NameNode。
当目前为止,一起验证以及恢复已经完成。各个服务的日志也恢复了正常。
4.2、自动切换模式验证
自动切换模式的验证和手动切换基本一样,还是手动kill掉Active NameNode进程,观察集群是否会自动恢复,将备用节点转换为Active NameNode。经过测试,当手动kill掉Active NameNode后,Standby NameNode成功地自动转换为Active NameNode继续服务于个个DataNode。