hive锁表彻底解决(全网最全,无坑)
解决方案1.进入hive,执行show locks;查看锁表情况,发现如下这里简单说一下:hive存在两种锁,共享锁Shared (S)和互斥锁Exclusive (X)触发共享锁的操作是可以并发执行的但是触发互斥锁,那么该表和该分区就不能并发的执行作业了。2.尝试解锁:unlock table 表名;(可以在hive命令行操作,也可以在HUE操作)报错:FAILED: Execution Err
·
解决方案
1.进入hive,执行
show locks;
查看锁表情况,发现如下
这里简单说一下:hive存在两种锁,共享锁Shared (S)和互斥锁Exclusive (X)
触发共享锁的操作是可以并发执行的
但是触发互斥锁,那么该表和该分区就不能并发的执行作业了。
2.尝试解锁:
unlock table 表名;(可以在hive命令行操作,也可以在HUE操作)
报错:
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
Current transaction manager does not support explicit lock requests. Transaction manager:
org.apache.hadoop.hive.ql.lockmgr.DbTxnManager
unlock table 表名 partition(mt=“202102”);
同样为解决问题。
3.临时解决方案
--添加临时设置
set hive.support.concurrency=false;
这个是hive的锁机制,可以暂时关掉,默认是true。关掉之后就可以删除表了,删掉之后可以再把它设置为true。
发现能够正常执行任务
4.再次解锁表
unlock table 表名 partition(mt="202102");
执行成功
5.查看hive表是否有锁表,发现已无锁表
更多推荐
已为社区贡献1条内容
所有评论(0)