此文章只是实操测试记录,
更多细节建议查看官方文档启用NameNode高可用
-
HDFS=>ACTIONS=>Enable NameNode HA
-
如果Hbase正在运行,需要先停止Hbase
-
填写一个Nameservice ID
-
为NameNode和JournalNodes选择主机
-
确认选择,下一步
-
登录到NameNode主机进入安全模式创建检查点,如果已经创建过(即下一步按钮为绿色可点击状态),可以直接下一步
sudo su hdfs -l -c 'hdfs dfsadmin -safemode enter'
sudo su hdfs -l -c 'hdfs dfsadmin -saveNamespace'
7. 等待进度完成后下一步
8. 登录到NameNode主机进行JournalNodes初始化,然后下一步
sudo su hdfs -l -c 'hdfs namenode -initializeSharedEdits'
9. 等待完成,下一步
10. 初始化NameNode元数据, 初始化后进行下一步
# 根据提示执行
# 登录节点1执行
sudo su hdfs -l -c 'hdfs zkfc -formatZK'
# 登录节点2执行
sudo su hdfs -l -c 'hdfs namenode -bootstrapStandby'
-
等待进度完成
-
如果使用Hive,需要更改Hive的数据指向
PS:在实操时,发现系统已自动调整好,可能是新版本已经不需要手动做下面操作
# 在hive节点查看
hive --config /etc/hive/conf/conf.server --service metatool -listFSRoot
# 例如 Nameservice ID 是 mycluster
hive --config /etc/hive/conf/conf.server --service metatool -updateLocation hdfs://mycluster/apps/hive/warehouse hdfs://c6401.ambari.apache.org/apps/hive/warehouse
修改配置Services > HDFS > Configs > Advanced core-site
设置ha.failover-controller.active-standby-elector.zk.op.retries=120
- 测试
正常情况下两台NameNode状态一台为ACTIVE NAMENODE, 一台为STANDBY NAMENODE。
手动关闭ACTIVE NAMENODE,STANDBY NAMENODE接管服务,状态变为ACTIVE NAMENODE,服务正常。