项目场景:
通过HQL删除表和导入数据
问题描述
Hive 删除表或导入数据卡死,同时也不报错,一直停留在HQL页面,也不执行。
drop table XXX
原因分析:
Hive中表有锁
解决方案:
查看是否有锁:
show locks
【说明】:发现有的表有锁有的表无锁,但还是删除不了
【注】hive存在两种锁,共享锁Shared (S)和互斥锁Exclusive (X)
触发共享锁的操作是可以并发执行的
但是触发互斥锁,那么该表和该分区就不能并发的执行作业了。
解锁[存在锁]:
unlock table XXX
关闭锁机制:
【说明】:无锁的先把锁机制关闭,因为其他表有锁证明锁机制是开启的
set hive.support.concurrency=false;