背景
Hadoop 集群使用 Ambari 来进行部署和管理,Hdfs 的 Namenode 本来是 HA 的,但是某天有一台机器重装之后,不小心把这台机器上的所有数据都清除掉了。因此需要在这台机器上重新部署相关的 Hadoop 组件,并且恢复 Namenode 的 HA 模式。由于是在原有的机器重新部署,机器之类的配置没有发生过变化,因此无需修改配置,只是需要把数据同步好,状态恢复好久 OK。以下是详细的步骤。
在重装机器的节点上恢复步骤
- 使用以下命令可以在任何的机器上 create 相关的组件:
curl -u admin:admin -H "X-Requested-By: ambari" -i -X POST -d '{"host_components" : [{"HostRoles":{"component_name":"ZKFC"}}] }' http://localhost:8080/api/v1/clusters/rhino_test/hosts?Hosts/host_name=hostname
主要是先安装 Journalnode、zkFailover、Namenode,安装完之后,可以先启动 zkFailover,其它两个可以先不启动。
下面的步骤主要是为了同步 Journalnode 和 Additional Namenode 的数据。
- 生成 checkpoint:
# 开启只读模式
hdfs dfsadmin -safemode enter
# 生成 checkpoint
hdfs dfsadmin -saveNamespace
然后停止 Namenode(2、3 步主要是为了同步新添加回去的 Journalnode 跟其它 Journalnode 状态一致)
- reformat jonuralnode
请确保两个前提:(1)Namenode 已经停止掉;(2)所有的 Journalnode 一定启动
# 在 Namenode 的机器上
hdfs namenode -initializeSharedEdits
- 将当前 Namenode 的所有文件,rsync 至新的 Additional Namenode 的对应目录,然后启动 Additional Namenode
- 在 ActiveNamenode 上执行下面的命令,
hdfs namenode -bootstrapStandby
由于操作中涉及了 Namenode 的启停,所以最好操作前将 HBase 服务下线掉,操作完成之后再重新上线。
网友评论