生产上运维HBase的过程中经常遇到drop表失败的情况,一般我们通过删除hdfs存储目录、zookeeper数据的的方式进行强制删除。
大体步骤如下:
这里以表“testTable12”为例
删除testTable12表在HDFS上的所有数据
[hbase@master98 ~]$ hadoop fs -rm -r -f /apps/hbase/data/data/default/testTable1220/02/04 17:34:38 INFO fs.TrashPolicyDefault: Moved: 'hdfs://mycluster/apps/hbase/data/data/default/testTable12' to trash at: hdfs://mycluster/user/hbase/.Trash/Current/apps/hbase/data/data/default/testTable12
确认/apps/hbase/.tmp/data/default目录下是否有testTable12的数据,如果有也一并且删除,没有可忽略;
[hbase@master98 ~]$ hadoop fs -rm -r -f /apps/hbase/data/.tmp/data/default/testTable12
2.登录zookeeper的客户端查看hbase在zookeeper上的数据,尤其是region-in-transition和table-lock中是否有testTable12相关的数据,如果有直接删除,没有则忽略:
[zk: 10.124.165.158:2181(CONNECTED) 4] ls /hbase-unsecure/region-in-transition[][zk: 10.124.165.158:2181(CONNECTED) 5] ls /hbase-unsec