1、错误描述:
出现上述这个错误的原因是我之前已经安装了Cloudera Manager中的CDH,其中添加了所有的服务,当然也包含HBase。然后重新安装的时候,就会出现如下错误:
Failed to become active master,org.apache.hadoop.hbase.TableExistsException:hbase:namespace.
根据上面错误的我们可以很清楚的知道,在启动Hbase的时候,由于之前安装的HBase版本的数据还存在,因此重新安装的HBase会报TableExistsException的异常。导致无法启动HBase。
并且,之前版本的HBase的数据存放的位置是在zookeeper中,因此需要进入zookeeper的客户端查看。
2、解决的办法
(1)停止HBase,这一步应该忽略,因为你根本就没有启动,所以就谈不上停止了。
(2)找到ClouderaManager自动安装的zookeeper组件的位置
我们知道Cloudera公司安装的CDH所有的组件默认会在/opt/cloudera/parcels/CDH-5.4.4-1.cdh5.4.4.p0.4/lib/ 目录下。因此,
zookeeper的安装目录就是:/opt/cloudera/parcels/CDH-5.4.4-1.cdh5.4.4.p0.4/lib/zookeeper
(3)进入zookeeper安装目录的bin目录下:
/opt/cloudera/parcels/CDH-5.4.4-1.cdh5.4.4.p0.4/lib/zookeeper/bin
(4)执行如下命令:
./zkCli.sh ,则会进入zookeeper的客户端的shell界面。并在该shell界面执行 ls / 命令,则会出现如下所示:
从上图我们可以看出,zookeeper中存在hbase的数据,所以我们只需要将hbase这个删除即可。
(5)执行删除: rmr /hbase
(6)重启hbase。
ok了。