解决方案

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表是否有锁表,发现已无锁表

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐