hivesql执行不动(锁表)

一,场景

        在执行insert into或insert overwrite任务时,中途手动将程序停掉。后续再执行任务,哪怕任务非常简单也会出现卡死情况(无法提交MapReduce),无论执行多久,都会保持卡死状态。

二,原因

         hive表被锁或者某个分区被锁,需要解锁

三,解决办法

(1)重新再建一张不同表名的表

(2)给表或者分区解锁

1,首先查看锁表情况,执行语句:show locks  表名

显示exclusive,即表被锁上了,没有锁返回为空

hivesql执行不动(锁表)

2,解锁

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

注意

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

笔者没有碰到分区锁,请自行百度,或者参考如下博文:

https://www.cnblogs.com/skyEva/p/8806521.html

http://blog.sina.com.cn/s/blog_7673d4a501019mct.html

https://www.cnblogs.com/sunt9/p/6670249.html

https://blog.****.net/max_hello/article/details/80781797