2017-09-19 1 views
1

각 실행 전에 하이브에 데이터베이스를 초기화하려고합니다.하이브에 데이터베이스를 삭제하지 못했습니다.

코드는 다음과 같습니다

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Unable to clean up java.sql.SQLSyntaxErrorException: Table 'hive.COMPLETED_COMPACTIONS' doesn't exist

가 다시 실행에 전달

eval $command; 

나는 또한 호출 사실을 설명 할 수 없다 :

command="hive -e \"drop database if exists some_db cascade; create database some_db\""; 
eval $command; 

실행이 오류와 함께 실패 여러 번 명령, 그것은 교대로 실패 유지.

하이브 (Hive)에서 일어나는 일에 대한 조언과 첫 번째 시도에서 어떻게 작동하는지 감사하게 생각합니다. 감사합니다.


세부 사항 : AWS EMR 5.7에서 실행 하이브 2.1, HIVE에 1.0

전체 오류 스택 그런 행동을 보지 못했다

당신의 하이브 메타 스토어 스키마 할 필요가 같은

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Unable to clean up java.sql.SQLSyntaxErrorException: Table 'hive.COMPLETED_COMPACTIONS' doesn't exist at org.mariadb.jdbc.internal.util.ExceptionMapper.get(ExceptionMapper.java:125) at org.mariadb.jdbc.internal.util.ExceptionMapper.throwException(ExceptionMapper.java:69) at org.mariadb.jdbc.MariaDbStatement.executeQueryEpilog(MariaDbStatement.java:259) at org.mariadb.jdbc.MariaDbStatement.execute(MariaDbStatement.java:287) at org.mariadb.jdbc.MariaDbStatement.executeUpdate(MariaDbStatement.java:470) at org.mariadb.jdbc.MariaDbStatement.executeUpdate(MariaDbStatement.java:486) at com.jolbox.bonecp.StatementHandle.executeUpdate(StatementHandle.java:497) at org.apache.hadoop.hive.metastore.txn.TxnHandler.cleanupRecords(TxnHandler.java:1721) at org.apache.hadoop.hive.metastore.AcidEventListener.onDropDatabase(AcidEventListener.java:51) at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.drop_database_core(HiveMetaStore.java:1098) at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.drop_database(HiveMetaStore.java:1130) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.hive.metastore.RetryingHMSHandler.invokeInternal(RetryingHMSHandler.java:140) at org.apache.hadoop.hive.metastore.RetryingHMSHandler.invoke(RetryingHMSHandler.java:99) at com.sun.proxy.$Proxy19.drop_database(Unknown Source) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$drop_database.getResult(ThriftHiveMetastore.java:10518) at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$drop_database.getResult(ThriftHiveMetastore.java:10502) at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) at org.apache.hadoop.hive.metastore.TUGIBasedProcessor$1.run(TUGIBasedProcessor.java:110) at org.apache.hadoop.hive.metastore.TUGIBasedProcessor$1.run(TUGIBasedProcessor.java:106) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698) at org.apache.hadoop.hive.metastore.TUGIBasedProcessor.process(TUGIBasedProcessor.java:118) at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:286) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.mariadb.jdbc.internal.util.dao.QueryException: Table 'hive.COMPLETED_COMPACTIONS' doesn't exist at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:479) at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.result(AbstractQueryProtocol.java:400) at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:381) at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:337) at org.mariadb.jdbc.MariaDbStatement.execute(MariaDbStatement.java:277) ... 27 more Blockquote

답변

1

이 보이는 업그레이드 됨. schematool 명령을 사용하여 스키마 버전을 확인할 수 있습니다.

예 출력 :

메타 스토어 연결 URL : JDBC한다 : mysql : // XXXXXXXXXXXXXXXX : 3306/하이브 createDatabaseIfNotExist = 사실 메타 스토어 연결 드라이버 : org.mariadb.jdbc.Driver 메타 스토어 접속 사용자 : 하이브 하이브 배포 버전 : 2.1.0 메타 스토어 스키마 버전 : 2.1.0

메타 스토어 스키마와 하이브 배포 버전이 다른 경우 스키마를 업그레이드하십시오.

백업을 먼저 준비하십시오. 또한 오래된 하이브 배포판의 기능을 해치는 스키마가 변경되어 하이브 배포 버전간에 매트 저장소를 공유하지 못할 수도 있습니다.

+0

감사합니다. 테스트 해 보겠습니다. –

관련 문제