情況:
已啟動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