HIVE锁相关

 

hive存在两种锁,共享锁Shared (S)和互斥锁Exclusive (X)

其中只触发s锁的操作可以并发的执行,只要有一个操作对表或者分区出发了x锁,则该表或者分区不能并发的执行作业。

 

-- 加锁
lock table dws_prem_m_bak_20180630 exclusive ; 
-- 查看锁
show locks dws_prem_m_bak_20180630 extended;
-- 解锁
unlock table dws_prem_m_bak_20180630 ;
-- 如果锁表无法操作查询及ddl
select * from dws_prem_m_bak_20180630; 

 

-- 在hue中通过mr执行过程中,点取消,导致锁分区
-- 通过过spark重跑2018-05-01分区无法插入数据
-- 插入其它分区可正常插入
-- 查看分区不存在
show partitions table_name;
-- 查看是否锁表
show locks table_name;
-- 发现表的2018-05-01分区被锁
db_name@table_name@day=2018-05-01 Exclusive (X)
-- 解锁表无效
unlocks table table_name;
-- 解锁表分区无效,报错无该分区
unlocks table table_name partition(day='2018-05-01');
-- 改表名,再改回来,失败,执行不动
alter table table_name rename to table_name_bak;
-- 增加分区,成功
alter table table_name add partition(day='2018-05-01');
-- 再次解锁分区,成功
unlocks table table_name partition(day='2018-05-01');

 

posted @ 2018-07-04 16:24  chenzechao  阅读(438)  评论(0)    收藏  举报