当hive表被锁住后,进行drop insert操作时都出挂起等待,sqoop也无法导入数据,此时就需要先对hive表解锁再进行相关操作。
1. 查看是否锁表
SHOW LOCKS <TABLE_NAME>;
SHOW LOCKS <TABLE_NAME> extended;
SHOW LOCKS <TABLE_NAME> PARTITION (<PARTITION_DESC>);
SHOW LOCKS <TABLE_NAME> PARTITION (<PARTITION_DESC>) extended
加上extended可以查看详细的锁表信息,例如正在执行的sql
show locks table_name partition 可以查看指定分区是否被锁表
2. 解决方法
关闭锁表机制:
set hive.support.concurrency=false; 默认为true
彻底解决锁表问题,但是也丧失了hive的锁机制,不建议这么做,还是要在业务初期考虑锁表情况,从而避免
解开被锁的表:
unlock table tablename