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