内容纲要
概要描述
HDFS采用namenode HA方案保证hdfs的高可靠,始终有一个 namenode 做热备,防止单点故障问题。HDFS重启或因其他原因,namenode可能发生主备切换,但有外部应用程序访问 HDFS 是通过 IP 地址指定访问的,如果namenode发生了切换可能导致外部程序访问 hdfs 失败,该场景下,需要手动切换namenode。本案例提供一种手动切换 active namenode 的方法。
详细说明
确认namenode所在节点
在manager页面查看namenode所在节点,由下图可知,mll01、mll02是两个namenode所在节点。
附录:也可以在后台执行 hdfs getconf -namenodes
查看 namenode 所在节点
查看当前namenode主从情况
注意: 以下命令必须要HDFS的超级用户hdfs
才能执行,执行如下切换到 hdfs 用户;
$ export HADOOP_USER_NAME=hdfs
命令行查看namenode主从情况,由下图可知,mll01是active节点,mll02是standby节点
hdfs haadmin -getServiceState mll01
hdfs haadmin -getServiceState mll02
手动切换namenode
- 需要将 mll02 切换为 active 状态的三种方法
# 将 active 状态从 mll01 节点故障切换到 mll02 上
$ hdfs haadmin -failover mll01 mll02
# 将 mll01 过渡到 Standby;
$ hdfs haadmin -transitionToStandby --forcemanual mll01
# 将 mll02 过渡到 Active;
$ hdfs haadmin -transitionToActive --forceactive mll02
- 再次查看namenode主从状态,发现mll02已经变成了active状态