在实际工作中遇到过重新创建一个hbase的hive外部表,在
disable 'table_name';
drop 'table_name'
在drop 'table_name'卡住
最后有提示报错。
建议各位查看下表有无lock的情况,
查看和释放hbase lock可以通过如下方式来查看
pid获取:
在 Master UI 主页的 Procedures & Locks 菜单栏下,在页面标题中列出了所有正在进行的 Procedure 和 Locks,以及当前的 Master Procedure WALs;
Procedure 和 Locks 的列表也可以通过 hbase shell 获得: list_procedures
①hbase 的web 控制台
http://XXXXX:16010/master-status
【Cdh集群,可通过Cloudera manager点击Hbase→Web UI,跳转至相应页面】
点击 下方图片 画圈处的选项,查看表锁的情况
找到相应的pid,如果是和自己drop有关的表相关的进程,可用hbck2工具来kill掉
有关hbck2的编译及使用方法可参考如下两个文章的介绍
hbase HBCK2使用指南https://cloud.tencent.com/developer/article/1940084
HBase hbck2详解https://bbs.huaweicloud.com/blogs/353333
用hbck2的bypass来释放lock
伪代码
hbck -j /XXXXX/hbase-operator-tools-1.2.0/hbase-hbck2/target/hbase-hbck2-X.X.X.jar bypass abc
②
通过 hbase shell ,输入命令: list_procedures
# hbase shell
Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
Took 0.0019 seconds
hbase(main):001:0> list_procedures
PID Name State Submitted Last_Update Parameters
用hbck2杀掉当前阻塞的Pid
伪代码
hbck -j /XXXXX/hbase-operator-tools-1.2.0/hbase-hbck2/target/hbase-hbck2-X.X.X.jar bypass abc
待阻塞的pid kill掉之后,
再重新'disable' 及 'drop'等操作