原因分析:
重建hdfs后,Hbase注册到原hdfs的信息被清除,而zookeeper仍保留了Hbase的旧的注册信息。
导致在新的hdfs找不到原来的Hbase信息而报错。
解决方案:
将zookeeper注册的旧的Hbase信息清除,重新启动Hbase服务。
2月 21, 凌晨5点23:59.125 FATAL
org.apache.hadoop.hbase.master.HMaster Failed to become active master
org.apache.hadoop.hbase.TableExistsException:hbase:namespace
12月 21, 凌晨5点23:59.153 FATAL
org.apache.hadoop.hbase.master.HMaster Master server abort: loadedcoprocessors are: []
12月 21, 凌晨5点23:59.153 FATAL
org.apache.hadoop.hbase.master.HMaster Unhandled exception. Startingshutdown.
org.apache.hadoop.hbase.TableExistsException:hbase:namespace
/usr/lib是使用cloudera安装hadoop默认的安装环境,在$USER_NAME/bin下有该服务的命令行工具:
根据上面错误的我们可以很清楚的知道,在启动Hbase的时候,由于之前安装的HBase版本的数据还存在,因此重新安装的HBase会报TableExistsException的异常。导致无法启动HBase。
并且,之前版本的HBase的数据存放的位置是在zookeeper中,因此需要进入zookeeper的客户端查看,并进行清理:
命令:
#cd /usr/lib/zookeeper/bin
#./zkCli.sh
#ls /
#rmr /hbase
重启hbase
OK!