美文网首页
记一次Hive表锁事故

记一次Hive表锁事故

作者: 多彩海洋 | 来源:发表于2020-04-09 20:16 被阅读0次

场景:

在执行insert into或insert overwrite任务时,中途手动将程序停掉,会出现卡死情况(无法提交MapReduce),只能执行查询操作,而drop insert操作均不可操作,无论执行多久,都会保持卡死状态

临时解决办法是……把表名换一个……

根本原因是:hive表被锁或者某个分区被锁,需要解锁

show locks 表名:
可以查看表被锁的情况

解锁

unlock table 表名; -- 解锁表
unlock table 表名 partition(dt='2020-04-09'); -- 解锁某个分区

注意

表锁和分区锁是两个不同的锁,对表解锁,对分区是无效的,分区需要单独解锁

补充

hive存在两种锁,共享锁Shared (S)和互斥锁Exclusive (X),
其中只触发s锁的操作可以并发的执行,只要有一个操作对表或者分区出发了x锁,则该表或者分区不能并发的执行作业。

各个操作锁出发的锁如下:

hql命令 锁类型
select .. T1 partition P1 S on T1, T1.P1
insert into T2(partition P2) select .. T1 partition P1 S on T2, T1, T1.P1 and X on T2.P2
insert into T2(partition P.Q) select .. T1 partition P1 S on T2, T2.P, T1, T1.P1 and X on T2.P.Q
alter table T1 rename T2 X on T1
alter table T1 add cols X on T1
alter table T1 replace cols X on T1
alter table T1 change cols X on T1
alter table T1 add partition P1 S on T1, X on T1.P1
alter table T1 drop partition P1 S on T1, X on T1.P1
alter table T1 touch partition P1 S on T1, X on T1.P1
alter table T1 set serdeproperties S on T1
alter table T1 set serializer S on T1
alter table T1 set file format S on T1
alter table T1 set tblproperties X on T1
drop table T1 X on T1

相关文章

网友评论

      本文标题:记一次Hive表锁事故

      本文链接:https://www.haomeiwen.com/subject/abyhmhtx.html