问题:FileSystemVersionException: You have version null and I want version 8.

问题描述:
首次安装HBase成功,使用和 hbase shell 进行某些命令行操作后,发现数据存放目录配置中设置但在本地并未创建相应的路径,关闭HBase启动HBase,创建相应的位置,出现问题!

寻找问题:
1、启动hbase成功,且HMaster与HRegionServer启动成功,如下:

[root@hadoop hadoop-2.8.1]# jps
3136 NameNode
106355 QuorumPeerMain
3990 SecondaryNameNode
3496 DataNode
121672 HMaster
122875 Jps
121933 HRegionServer
4957 ResourceManager

2、进入hbase shell
使用list_namepace测试,出现问题,不显示正常的数据库。

3、自己寻找原因,jps查看进程中的HMaster挂掉,只剩下HRegionServer进程。

4、在 hbase 安装目录的logs目录下的 hbase-root-master-hadoop.log 日志文件报错信息如下:

2022-07-19 17:58:26,358 FATAL [hadoop:16000.activeMasterManager] master.HMaster: Unhandled exception. Starting shutdown.
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'.
at org.apache.hadoop.hbase.util.FSUtils.checkVersion(FSUtils.java:678)
at org.apache.hadoop.hbase.master.MasterFileSystem.checkRootDir(MasterFileSystem.java:462)
at org.apache.hadoop.hbase.master.MasterFileSystem.createInitialFileSystemLayout(MasterFileSystem.java:153)
at org.apache.hadoop.hbase.master.MasterFileSystem.<init>(MasterFileSystem.java:128)
at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:638)
at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:184)
at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1729)
at java.lang.Thread.run(Thread.java:748)

5、日志显示HBase file layout needs to be upgraded,文件系统居然要求升级,这很不科学。按照他的提示运行了you may need to run 'hbase hbck -fixVersionFile',依然会报错。
看到提示:You have version null... 

6、查看HDFS上的文件
问题解决之前的目录:
[root@hadoop logs]# hdfs dfs -ls /hbase
Found 3 items
drwxr-xr-x   - root supergroup          0 2022-07-19 19:30 /hbase/.tmp
drwxr-xr-x   - root supergroup          0 2022-07-19 17:06 /hbase/MasterProcWALs
drwxr-xr-x   - root supergroup          0 2022-07-19 17:08 /hbase/data
问题解决之后的目录:
[root@hadoop ~]# hdfs dfs -ls /hbase
Found 7 items
drwxr-xr-x   - root supergroup          0 2022-07-19 19:37 /hbase/.tmp
drwxr-xr-x   - root supergroup          0 2022-07-19 19:38 /hbase/MasterProcWALs
drwxr-xr-x   - root supergroup          0 2022-07-19 19:37 /hbase/WALs
drwxr-xr-x   - root supergroup          0 2022-07-19 19:37 /hbase/data
-rw-r--r--   1 root supergroup         42 2022-07-19 19:37 /hbase/hbase.id
-rw-r--r--   1 root supergroup          7 2022-07-19 19:37 /hbase/hbase.version
drwxr-xr-x   - root supergroup          0 2022-07-19 19:57 /hbase/oldWALs

问题原因:
7、缺少这个主要的文件/hbase/hbase.version

解决方法:
1、将这个损坏的文件删除或者给移除,个人建议如下方法(如果依然出现问题,还可以保证恢复原来的文件)
[root@hadoop hadoop-2.8.1]# hdfs dfs -mv /hbase /hbase.bk

2、确认杀死Hbase的HRegionServer进程(HMaster本就因为问题没有出现)
kill -9 xxxx  (xxxx为进程号)

3、重新启动HBase
[root@hadoop hadoop-2.8.1]# start-hbase.sh 
[root@hadoop hadoop-2.8.1]# jps
3136 NameNode
106355 QuorumPeerMain
3990 SecondaryNameNode
122742 Jps
3496 DataNode
121672 HMaster
121933 HRegionServer
4957 ResourceManager

4、到此可以说问题解决了?(只是重新启动HBase,但是如果之前存在数据会丢失,所以还要进行以下步骤)如果没有数据或者初学者,可以到此步骤结束。

5、上述第1步骤提到,数据没有删除,只是作为备份文件,接着恢复即可。


hdfs df -cp /hbase/hbase.version /hbase.bk/

hdfs dfs -rmr /hbase 

hdfs dfs -mv /hbase.bk /hbase

然后再次重启HBase即可,Hbase开始splitting hlogs,数据得以恢复

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值