网上很多 去使用set 临时关闭锁表配置文件的,千篇一律还不能根本解决问题,反倒是关闭锁表之后可能产生其他潜在的问题。不建议关闭。
------------------------------
本人实践后的,比较妥帖的方案,
show locks extended; 查找到具体哪些语句加了锁;
然后复制锁表语句到hue中运行,运行成功即可解锁;//或者在命令行调用hive命令运行sql文件,目的就是为了加锁语句顺利执行,锁
自然会消失。
zookeeper中保存了,锁表的node节点信息,可以打开,观察语句在hue运行后,锁是否还在。
---------------------------------
目前,这个问题,没有完全彻底的解决方案,这与hive本身的锁机制有很大关系,从cloudera官方论坛里的讨论也可以看出,
无非就是这么四种:(在unlock不掉锁的情况下)
第一,
set hive.support.concurrency=false; 默认为true,即临时关闭锁;
第二,有人建议,直接去删除掉 zookeeper中的 lock锁节点,但是还没有人亲身测试过,且直接删除节点的风险很大。
第三,通过show locks extended; 查到语句复制到hue然后执行通过,解锁。
第四,查询hive metastore数据库,如果里边有锁记录,删除记录,解锁。但是就我的观察看,这个锁记录可能在老版本中是存放在metastore数据库的,
新版本基本上都应该在zookeeper节点里边,所以,此方法可能只是部分版本有效。
------------------------------------------
参考文章:
http://belablotski.blogspot.com/2014/05/hive-concurrency-locking-tables-with.html
https://etl.svbtle.com/hive-unlock-all-partitions
https://blog.csdn.net/qq_27493503/article/details/80892454