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了。