一、功能描述:
在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配置:
重启所有zkfc,使配置刷到本地磁盘。然后停止所有zkfc服务,在zkfc节点重新format zkfc:
sudo su ocdc -l -c ‘hdfs zkfc -formatZK’
启动zkfc,在新加namenode节点执行:
sudo su ocdc -l -c ‘hdfs namenode -bootStrapstandby’
重启hdfs服务即可。
如果成功,显示如下: