Hive的锁有两个Lock方式
- Shared (S) 共享表
- Exclusive (X) 独享表、排他表
总结起来就是:
- 1)查询操作使用共享锁,共享锁是可以多重、并发使用的
- 2)修改表操作使用独占锁,它会阻止其他的查询、修改操作
- 3)可以对分区使用锁。
以下情况会出发锁,以及它的类型和锁定范围如下:
Hive Command |
Locks Acquired |
---|---|
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 </ |