當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