求助:hbase list_namespace查不到以前建的表空间,但是 hadoop fs -ls 可以看到目录 ?

求助:hbase list_namespace查不到以前建的表空间,但是 hadoop fs -ls 可以看到目录 ?

问题描述:

进入hbase shell,
用 list 命令可以查看到我的表空间(dw_data)和表(a_organ 等等),是可以查出来:

图片说明

然后用 list_namespace 命令查看, 发现表空间(dw_data)不在了:

图片说明

当然表空间下面的表也不存在了:

图片说明

用 hadoop fs -ls /hbase/data 命令,查看dw_data的目录是有的:

图片说明

里面的表的目录也是有的:

图片说明

求助,怎么让hbase可以识别到dw_data表空间和它的表?

原因:HBASE meta 数据丢失
解决:
查看hbasemeta情况

hbase hbck

1.重新修复hbase meta表(根据hdfs上的regioninfo文件,生成meta表)

hbase hbck -fixMeta

2.重新将hbase meta表分给regionserver(根据meta表,将meta表上的region分给regionservere)

hbase hbck -fixAssignments

可能会报用户权限错误,可切换到root用户执行runuser:
runuser -l hbase -s /bin/sh -c 'hbase hbck -fixMeta'
runuser -l hbase -s /bin/sh -c 'hbase hbck -fixAssignments'