khstar
hive 테이블 Locked 문제 본문
flume에서 hive로 JSON 스트림 데이터를 추가하는 작업을 테스트 중입니다.
과정에서 테이블이 잘못 만들어져서 다시 만들기 위해 기존 테이블을 Drop 했는데 에러가 발생합니다.
이런 죈장. ㅜㅜ 에러 로그는 캡쳐를 못했네요.. 또 죈장 ㅜㅜ
암튼 Drop 하는데 에러가 발생한다면
hive에서 hive>show locks extended; 를 하면 Lock된 정보가 표시됩니다.
Lock 되어 있는 지도 모르고 계속 요청 했더니 리스트가 많네요. ㅜㅜ
검색을 해보면 unlock을 하면 된다고 하는데
hive> unlock database medical;
을 하니까 추가로 아래와 같은 메시지가 나옵니다. ㅜㅜ
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Current transaction manager does not support explicit lock requests. Transaction manager: org.apache.hadoop.hive.ql.lockmgr.DbTxnManager
ㅜㅜ
stackoverflow에 나온 내용은 아래와 같습니다. 뭐 이래 저래 해봤는데 도저히 해결이 안되네요.
https://stackoverflow.com/questions/33369383/hive-acquire-explicit-exclusive-lock
추가로 여기저기 찾아보니 metastore를 db로 사용하는 경우 HIVE_LOCKS라는 테이블이 있다고 합니다.
저는 metastore로 mysql을 사용중입니다. 확인을 해보니 위의 Lock 정보가 이 HIVE_LOCKS 테이블에 데이터로 들어가 있네요.
이걸 지우면 사이드이펙트가 발생하는 건 아닐까? 싶어서 여기저기 들쑤시다가
우선 데이터를 백업해두고 HIVE_LOCKS 테이블의 데이터를 삭제했습니다.
그리고 HIVE를 다시 들어가서 locks 를 확인하니 데이터가 안나오네요.. 지웠으니 당연하겠죠.
그럼 원래 목적이었던 sensor 테이블을 삭제해보겠습니다.
삭제되었네요.. ㅜㅜ 감격 임의로 데이터를 지웠으니 이제는 사이트이펙트가 발생하지 않기를 바랍니다.