情况:
已启动ZooKeeper和HDFS,再启动HBase,虽然启动成功,但过了几秒后HBase自动关闭了,并报错。
完整的报错信息:
master.HMaster: Failed to become active master org.apache.hadoop.hbase.util.FileSystemVersionException: HBase file layout needs to be upgraded. You have version null and I want version 8. Consult http://hbase.apache.org/book.html for further information about upgrading HBase. Is your hbase.rootdir valid? If so, you may need to run 'hbase hbck -fixVersionFile'.
解决方法:
#登入hdfs用户 su hdfs #删除/hbase/data目录 hadoop fs -rmr /apps/hbase/data #旧版 hdfs dfs -rm -r /apps/hbase/data #新版 #登入ZooKeeper zkCli.sh #查看是否存在/hbase-unsecure目录 ls / #删除/hbase-unsecure目录 rmr /hbase-unsecure #旧版 deleteall /hbase-unsecure #新版
最后重启HBase即可
附:
如果执行了报错信息中的命令:
hbase hbck -fixVersionFile
则会报出新的错误,说apps/hbase/data/.tmp/hbase-hbck.lock文件被占用了,需要先删除该锁文件
删除命令:
hdfs dfs -rm /apps/hbase/data/.tmp/hbase-hbck.lock