美文网首页
记一次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