[
https://issues.apache.org/jira/browse/HIVE-6113?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15093141#comment-15093141
]
Lefty Leverenz commented on HIVE-6113:
--------------------------------------
[~sershe] and [~osayankin], are these two sentences from "Metastore Schema
Consistency and Upgrades" and "Metastore Schema Verification" still valid?
{quote}
To suppress the schema check and allow the metastore to implicitly modify the
schema, you need to set a configuration property
hive.metastore.schema.verification to false in hive-site.xml.
{quote}
{quote}
By default the configuration property hive.metastore.schema.verification is
false and metastore to implicitly write the schema version if it's not
matching. To enable the strict schema verification, you need to set this
property to true in hive-site.xml.
{quote}
I don't understand why *hive.metastore.schema.verification* would need to be
set to false in hive-site.xml since it is already false by default in
HiveConf.java. I also don't know which hive-site.xml file(s) should be set, or
whether the parameter could be set in HiveConf.java instead. HIVE-12841 asks
for better documentation of hive-site.xml.
Also, in the second sentence quoted above should "... and metastore to
implicitly write" be changed to "... will implicitly write" (or "... implicitly
writes")?
Finally, I don't understand what is meant by implicitly modifying the schema or
implicitly writing the schema version -- are they the same thing, that is,
"modify the schema" means "modify the schema version"? If you're not the right
people to ask, perhaps you could suggest someone else. Thanks.
Here are the quoted sections:
* [Admin Manual -- Metastore Admin -- Metastore Schema Consistency and Upgrades
|
https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin#AdminManualMetastoreAdmin-MetastoreSchemaConsistencyandUpgrades]
* [Hive Schema Tool -- Metastore Schema Verification |
https://cwiki.apache.org/confluence/display/Hive/Hive+Schema+Tool#HiveSchemaTool-MetastoreSchemaVerification]
> Upgrade DataNucleus [was: Unable to instantiate
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient]
> -----------------------------------------------------------------------------------------------------
>
> Key: HIVE-6113
> URL: https://issues.apache.org/jira/browse/HIVE-6113
> Project: Hive
> Issue Type: Bug
> Components: Database/Schema
> Affects Versions: 0.12.0, 0.13.0, 0.14.0, 1.0.0, 1.2.1
> Environment: hadoop-0.20.2-cdh3u3,hive-0.12.0
> Reporter: William Stone
> Assignee: Oleksiy Sayankin
> Priority: Critical
> Labels: HiveMetaStoreClient, TODOC2.0, metastore,
> unable_instantiate
> Fix For: 2.0.0, 2.1.0
>
> Attachments: HIVE-6113-2.patch, HIVE-6113.10.patch,
> HIVE-6113.3.patch, HIVE-6113.4.patch, HIVE-6113.5.patch, HIVE-6113.6.patch,
> HIVE-6113.7.patch, HIVE-6113.8.patch, HIVE-6113.9.patch, HIVE-6113.patch,
> HIVE-6113.with.reflection.patch
>
>
> CLEAR LIBRARY CACHE
> When I exccute SQL "use fdm; desc formatted fdm.tableName;" in python, throw
> Error as followed.
> but when I tryit again , It will success.
> 2013-12-25 03:01:32,290 ERROR exec.DDLTask (DDLTask.java:execute(435)) -
> org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException:
> Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
> at org.apache.hadoop.hive.ql.metadata.Hive.getDatabase(Hive.java:1143)
> at
> org.apache.hadoop.hive.ql.metadata.Hive.databaseExists(Hive.java:1128)
> at
> org.apache.hadoop.hive.ql.exec.DDLTask.switchDatabase(DDLTask.java:3479)
> at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:237)
> at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:151)
> at
> org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:65)
> at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1414)
> at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1192)
> at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1020)
> at org.apache.hadoop.hive.ql.Driver.run(Driver.java:888)
> at
> org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:260)
> at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:217)
> at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:507)
> at
> org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:875)
> at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:769)
> at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:708)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.hadoop.util.RunJar.main(RunJar.java:197)
> Caused by: java.lang.RuntimeException: Unable to instantiate
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient
> at
> org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1217)
> at
> org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:62)
> at
> org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:72)
> at
> org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:2372)
> at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2383)
> at org.apache.hadoop.hive.ql.metadata.Hive.getDatabase(Hive.java:1139)
> ... 20 more
> Caused by: java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at
> org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1210)
> ... 25 more
> Caused by: javax.jdo.JDODataStoreException: Exception thrown flushing changes
> to datastore
> NestedThrowables:
> java.sql.BatchUpdateException: Duplicate entry 'default' for key
> 'UNIQUE_DATABASE'
> at
> org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:451)
> at
> org.datanucleus.api.jdo.JDOTransaction.commit(JDOTransaction.java:165)
> at
> org.apache.hadoop.hive.metastore.ObjectStore.commitTransaction(ObjectStore.java:358)
> at
> org.apache.hadoop.hive.metastore.ObjectStore.createDatabase(ObjectStore.java:404)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.hadoop.hive.metastore.RetryingRawStore.invoke(RetryingRawStore.java:124)
> at $Proxy9.createDatabase(Unknown Source)
> at
> org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.createDefaultDB_core(HiveMetaStore.java:422)
> at
> org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.createDefaultDB(HiveMetaStore.java:441)
> at
> org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.init(HiveMetaStore.java:326)
> at
> org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.<init>(HiveMetaStore.java:286)
> at
> org.apache.hadoop.hive.metastore.RetryingHMSHandler.<init>(RetryingHMSHandler.java:54)
> at
> org.apache.hadoop.hive.metastore.RetryingHMSHandler.getProxy(RetryingHMSHandler.java:59)
> at
> org.apache.hadoop.hive.metastore.HiveMetaStore.newHMSHandler(HiveMetaStore.java:4060)
> at
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:121)
> ... 30 more
> Caused by: java.sql.BatchUpdateException: Duplicate entry 'default' for key
> 'UNIQUE_DATABASE'
> at
> com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2028)
> at
> com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1451)
> at
> com.jolbox.bonecp.StatementHandle.executeBatch(StatementHandle.java:469)
> at
> org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeBatch(ParamLoggingPreparedStatement.java:372)
> at
> org.datanucleus.store.rdbms.SQLController.processConnectionStatement(SQLController.java:628)
> at
> org.datanucleus.store.rdbms.SQLController.processStatementsForConnection(SQLController.java:596)
> at
> org.datanucleus.store.rdbms.SQLController$1.transactionFlushed(SQLController.java:683)
> at
> org.datanucleus.store.connection.AbstractManagedConnection.transactionFlushed(AbstractManagedConnection.java:86)
> at
> org.datanucleus.store.connection.ConnectionManagerImpl$2.transactionFlushed(ConnectionManagerImpl.java:454)
> at org.datanucleus.TransactionImpl.flush(TransactionImpl.java:199)
> at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:263)
> at org.datanucleus.api.jdo.JDOTransaction.commit(JDOTransaction.java:98)
> ... 46 more
> Caused by:
> com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
> Duplicate entry 'default' for key 'UNIQUE_DATABASE'
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
> at com.mysql.jdbc.Util.getInstance(Util.java:386)
> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1039)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
> at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
> at
> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
> at
> com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
> at
> com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1980)
> ... 57 more
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)