hive 鎖表解決方案(unlock不掉的情況下)


網上很多  去使用set 臨時關閉鎖表配置文件的,千篇一律還不能根本解決問題,反倒是關閉鎖表之后可能產生其他潛在的問題。不建議關閉。

------------------------------

本人實踐后的,比較妥帖的方案,

show locks extended; 查找到具體哪些語句加了鎖;
然后復制鎖表語句到hue中運行,運行成功即可解鎖;//或者在命令行調用hive命令運行sql文件,目的就是為了加鎖語句順利執行,鎖
自然會消失。
 zookeeper中保存了,鎖表的node節點信息,可以打開,觀察語句在hue運行后,鎖是否還在。
---------------------------------
目前,這個問題,沒有完全徹底的解決方案,這與hive本身的鎖機制有很大關系,從cloudera官方論壇里的討論也可以看出,
無非就是這么四種:(在unlock不掉鎖的情況下)
第一,set hive.support.concurrency=false; 默認為true,即臨時關閉鎖;
第二,有人建議,直接去刪除掉 zookeeper中的 lock鎖節點,但是還沒有人親身測試過,且直接刪除節點的風險很大。
第三,通過show locks extended; 查到語句復制到hue然后執行通過,解鎖。
第四,查詢hive metastore數據庫,如果里邊有鎖記錄,刪除記錄,解鎖。但是就我的觀察看,這個鎖記錄可能在老版本中是存放在metastore數據庫的,
新版本基本上都應該在zookeeper節點里邊,所以,此方法可能只是部分版本有效。
------------------------------------------
參考文章:
http://belablotski.blogspot.com/2014/05/hive-concurrency-locking-tables-with.html
https://etl.svbtle.com/hive-unlock-all-partitions
https://blog.csdn.net/qq_27493503/article/details/80892454


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM