一,场景
在执行insert into或insert overwrite任务时,中途手动将程序停掉。后续再执行任务,哪怕任务非常简单也会出现卡死情况(无法提交MapReduce),无论执行多久,都会保持卡死状态。
二,原因
hive表被锁或者某个分区被锁,需要解锁
三,解决办法
(1)重新再建一张不同表名的表
(2)给表或者分区解锁
1,首先查看锁表情况,执行语句:show locks 表名
显示exclusive,即表被锁上了,没有锁返回为空
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.csdn.net/max_hello/article/details/80781797