HDFS HA之NameNode状态管理切换


在开启HDFS HA之后,用命令查询、管理NameNode节点的状态,

环境:我这是CDH5.13集群; 

1、先看namenode的id,在hdfs的配置文件里(配置文件位置视自己的而定):

[root@d21104u34-61-91 ~]# grep -A 2 -i "ha.namenodes" /etc/hadoop/conf/hdfs-site.xml 
dfs.ha.namenodes.nameservice-91cs
namenode36,namenode108

2、查看两个nn的状态

[root@d21104u34-61-91 ~]# hdfs haadmin -getServiceState namenode36
active

[root@d21104u34-61-91 ~]# hdfs haadmin -getServiceState namenode108
standby

3、手动切换namenode的状态

适用于当主nemenode节点硬件损坏,需要停机修复时,先手动将状态转移;

如果有必要,操作之前可以先让HDFS进入安全模式,nn状态切换完成后,再离开安全模式;

将 namenode108 切换为 active 状态的三种方法(namenode108此时为standby):

# 将 active 状态从 namenode36 节点切换到 namenode108 上
(1)$ hdfs haadmin -failover namenode36 namenode108

# 将 namenode36 过渡到 Standby;
(2)$ hdfs haadmin -transitionToStandby --forcemanual namenode36

# 将 namenode108 过渡到 Active;
(3)$ hdfs haadmin -transitionToActive --forceactive namenode108

第一种方式演示,命令执行后可见状态已经切换了(我这里没有进入安全模式):

 也可以去CM页面中查看情况;

关于安全模式的命令:

hadoop dfsadmin -safemode leave   NameNode退出安全模式
hadoop dfsadmin -safemode enter   进入安全模式
hadoop dfsadmin -safemode get      查看安全模式状态
hadoop dfsadmin -safemode wait     等待一直到安全模式结束