hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "shanyu zhao (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HIVE-5218) datanucleus does not work with SQLServer in Hive metastore
Date Fri, 13 Sep 2013 21:42:52 GMT

     [ https://issues.apache.org/jira/browse/HIVE-5218?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

shanyu zhao updated HIVE-5218:
------------------------------

    Attachment: HIVE-5218.patch

[~cos]This bug only happens with SQL Server as metastore.

I attached a patch that downgrades datanucleus to 3.0.x. 

I understand that this version of datanucleus doesn't work with JDK7. But I think it's more
important that we don't release a version of hive that doesn't work with SQL Server as metastore.
                
> datanucleus does not work with SQLServer in Hive metastore
> ----------------------------------------------------------
>
>                 Key: HIVE-5218
>                 URL: https://issues.apache.org/jira/browse/HIVE-5218
>             Project: Hive
>          Issue Type: Bug
>          Components: Metastore
>    Affects Versions: 0.12.0
>            Reporter: shanyu zhao
>         Attachments: 0001-HIVE-5218-datanucleus-does-not-work-with-SQLServer-i.patch,
HIVE-5218.patch
>
>
> HIVE-3632 upgraded datanucleus version to 3.2.x, however, this version of datanucleus
doesn't work with SQLServer as the metastore. The problem is that datanucleus tries to use
fully qualified object name to find a table in the database but couldn't find it.
> If I downgrade the version to HIVE-2084, SQLServer works fine.
> It could be a bug in datanucleus.
> This is the detailed exception I'm getting when using datanucleus 3.2.x with SQL Server:
> FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTa
> sk. MetaException(message:javax.jdo.JDOException: Exception thrown calling table
> .exists() for a2ee36af45e9f46c19e995bfd2d9b5fd1hivemetastore..SEQUENCE_TABLE
>         at org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusExc
> eption(NucleusJDOHelper.java:596)
>         at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPe
> rsistenceManager.java:732)
> …
>         at org.apache.hadoop.hive.metastore.RetryingRawStore.invoke(RetryingRawS
> tore.java:111)
>         at $Proxy0.createTable(Unknown Source)
>         at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_tabl
> e_core(HiveMetaStore.java:1071)
>         at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_tabl
> e_with_environment_context(HiveMetaStore.java:1104)
> …
>         at $Proxy11.create_table_with_environment_context(Unknown Source)
>         at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$cr
> eate_table_with_environment_context.getResult(ThriftHiveMetastore.java:6417)
>         at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$cr
> eate_table_with_environment_context.getResult(ThriftHiveMetastore.java:6401)
> NestedThrowablesStackTrace:
> com.microsoft.sqlserver.jdbc.SQLServerException: There is already an object name
> d 'SEQUENCE_TABLE' in the database.
>         at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError
> (SQLServerException.java:197)
>         at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServ
> erStatement.java:1493)
>         at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQ
> LServerStatement.java:775)
>         at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute
> (SQLServerStatement.java:676)
>         at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4615)
>         at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLSe
> rverConnection.java:1400)
>         at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLSer
> verStatement.java:179)
>         at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLS
> erverStatement.java:154)
>         at com.microsoft.sqlserver.jdbc.SQLServerStatement.execute(SQLServerStat
> ement.java:649)
>         at com.jolbox.bonecp.StatementHandle.execute(StatementHandle.java:300)
>         at org.datanucleus.store.rdbms.table.AbstractTable.executeDdlStatement(A
> bstractTable.java:760)
>         at org.datanucleus.store.rdbms.table.AbstractTable.executeDdlStatementLi
> st(AbstractTable.java:711)
>         at org.datanucleus.store.rdbms.table.AbstractTable.create(AbstractTable.
> java:425)
>         at org.datanucleus.store.rdbms.table.AbstractTable.exists(AbstractTable.
> java:488)
>         at org.datanucleus.store.rdbms.valuegenerator.TableGenerator.repositoryE
> xists(TableGenerator.java:242)
>         at org.datanucleus.store.rdbms.valuegenerator.AbstractRDBMSGenerator.obt
> ainGenerationBlock(AbstractRDBMSGenerator.java:86)
>         at org.datanucleus.store.valuegenerator.AbstractGenerator.obtainGenerati
> onBlock(AbstractGenerator.java:197)
>         at org.datanucleus.store.valuegenerator.AbstractGenerator.next(AbstractG
> enerator.java:105)
>         at org.datanucleus.store.rdbms.RDBMSStoreManager.getStrategyValueForGene
> rator(RDBMSStoreManager.java:2019)
>         at org.datanucleus.store.AbstractStoreManager.getStrategyValue(AbstractS
> toreManager.java:1385)
>         at org.datanucleus.ExecutionContextImpl.newObjectId(ExecutionContextImpl
> .java:3727)
>         at org.datanucleus.state.JDOStateManager.setIdentity(JDOStateManager.jav
> a:2574)
>         at org.datanucleus.state.JDOStateManager.initialiseForPersistentNew(JDOS
> tateManager.java:526)
>         at org.datanucleus.state.ObjectProviderFactoryImpl.newForPersistentNew(O
> bjectProviderFactoryImpl.java:202)
>         at org.datanucleus.ExecutionContextImpl.newObjectProviderForPersistentNe
> w(ExecutionContextImpl.java:1326)
>         at org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionC
> ontextImpl.java:2123)
>         at org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionConte
> xtImpl.java:1972)
>         at org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextIm
> pl.java:1820)
>         at org.datanucleus.ExecutionContextThreadedImpl.persistObject(ExecutionC
> ontextThreadedImpl.java:217)
>         at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPe
> rsistenceManager.java:727)
>         at org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersi
> stenceManager.java:752)
>         at org.apache.hadoop.hive.metastore.ObjectStore.createTable(ObjectStore.
> java:646)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:57)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:601)
>         at org.apache.hadoop.hive.metastore.RetryingRawStore.invoke(RetryingRawS
> tore.java:111)
>         at $Proxy0.createTable(Unknown Source)
>         at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_tabl
> e_core(HiveMetaStore.java:1071)
>         at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_tabl
> e_with_environment_context(HiveMetaStore.java:1104)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:57)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:601)
>         at org.apache.hadoop.hive.metastore.RetryingHMSHandler.invoke(RetryingHM
> SHandler.java:103)
>         at $Proxy11.create_table_with_environment_context(Unknown Source)
>         at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$cr
> eate_table_with_environment_context.getResult(ThriftHiveMetastore.java:6417)
>         at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$cr
> eate_table_with_environment_context.getResult(ThriftHiveMetastore.java:6401)
>         at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
>         at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
>         at org.apache.hadoop.hive.metastore.TSetIpAddressProcessor.process(TSetI
> pAddressProcessor.java:48)
>         at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadP
> oolServer.java:206)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> java:1110)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:603)
>         at java.lang.Thread.run(Thread.java:722)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message