一、功能描述:

在Hdfs3.0以前版本中,一个hdfs只有两个namenode服务,一个是active状态,一个是standby 状态。当active namenode进程挂掉后,standby namenode会变成active状态,保证hdfs服务正常运行。但是这时如果这个standby namenode也挂掉了,则hdfs将无法提供服务。基于这种情况,hdfs3.0可以允许有一个active namenode,多个standby namenode,从而防止这种情况发生。

二、功能实现:

由于ambari界面没有直接提供该功能实现。需要我们通过ambari rest api来进行实现。
找一个没有安装namenode的节点通过ambari rest api进行安装:(ambariserver节点执行)
curl -u admin:admin -i -H “X-Requested-By:ambari” -X POST ‘10.1.236.145:8080/api/v1/clusters/ocdp/hosts/host-10-1-236-83/host_components/NAMENODE’

curl -u admin:admin -i -H “X-Requested-By:ambari” -X PUT ‘10.1.236.145:8080/api/v1/clusters/ocdp/hosts/host-10-1-236-83/host_components/NAMENODE’ -d ‘{“HostRoles”: {“state”: “INSTALLED”}}’

curl -u admin:admin -i -H “X-Requested-By:ambari” -X POST ‘10.1.236.145:8080/api/v1/clusters/ocdp/hosts/host-10-1-236-83/host_components/ZKFC’

curl -u admin:admin -i -H “X-Requested-By:ambari” -X PUT ‘10.1.236.145:8080/api/v1/clusters/ocdp/hosts/host-10-1-236-83/host_components/ZKFC’ -d ‘{“HostRoles”: {“state”: “INSTALLED”}}’


修改hdfs配置:
image.png

重启所有zkfc,使配置刷到本地磁盘。然后停止所有zkfc服务,在zkfc节点重新format zkfc:

sudo su ocdc -l -c ‘hdfs zkfc -formatZK’

启动zkfc,在新加namenode节点执行:

sudo su ocdc -l -c ‘hdfs namenode -bootStrapstandby’

重启hdfs服务即可。

如果成功,显示如下:
image.png