본문 바로가기
빅데이터/hive

[hive] 쿼리 실행중 MetaException 발생시 오류 처리

by hs_seo 2018. 12. 4.

쿼리 실행중 MetaException이 발생하는 경우가 있습니다. 메타스토어에서 쿼리상의 테이블 정보를 조회하는 과정에서 오류가 발생하여 출력됩니다.


이때 hive CLI 상에서는 MetaException의 쿼리만 확인이 가능하기 때문에 확인이 힘든 경우가 많습니다. 따라서 이경우에는 메타스토어의 로그를 확인하면 정확한 오류을 확인할 수 있습니다.


이번에 발생한 오류는 다음과 같았습니다.


2018-11-30T05:19:09,495 ERROR [main([])]: ql.Driver (SessionState.java:printError(1097)) - FAILED: SemanticException MetaException(message:Exception thrown when executing query : SELECT DISTINCT 'org.apache.hadoop.hive.metastore.model.MTable' AS NUCLEUS_TYPE,A0.CREATE_TIME,A0.LAST_ACCESS_TIME,A0.OWNER,A0.RETENTION,A0.TBL_NAME,A0.TBL_TYPE,A0.TBL_ID FROM TBLS A0 LEFT OUTER JOIN DBS B0 ON A0.DB_ID = B0.DB_ID WHERE A0.TBL_NAME = ? AND B0.`NAME` = ?)
org.apache.hadoop.hive.ql.parse.SemanticException: MetaException(message:Exception thrown when executing query : SELECT DISTINCT 'org.apache.hadoop.hive.metastore.model.MTable' AS NUCLEUS_TYPE,A0.CREATE_TIME,A0.LAST_ACCESS_TIME,A0.OWNER,A0.RETENTION,A0.TBL_NAME,A0.TBL_TYPE,A0.TBL_ID FROM TBLS A0 LEFT OUTER JOIN DBS B0 ON A0.DB_ID = B0.DB_ID WHERE A0.TBL_NAME = ? AND B0.`NAME` = ?)
        at org.apache.hadoop.hive.ql.optimizer.pcr.PcrOpProcFactory$FilterPCR.process(PcrOpProcFactory.java:114)


이를 이용해서는 정확한 오류를 확인하기 힘들어서 메타스토어의 오류를 확인하니, 쿼리의 조인 테이블에는 WHERE 조건으로 파티션 정보가 없어서 모든 파티션의 정보를 읽어와서 오류가 발생하였습니다.


조인 테이블의 WHERE 조건에 파티션 정보를 입력하여 문제를 해결하였습니다.



반응형