[
https://issues.apache.org/jira/browse/HIVE-7167?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14039334#comment-14039334
]
Xiaobing Zhou commented on HIVE-7167:
-------------------------------------
Thanks [~sershe],
1) Here's the exception.
2) it's because these three methods are potential places that causes contention
when two metastores both try to initialize DB in the same time.
3) I don't think so. If one tried and failed in the first time, JDOException is
caught for one more time try, if failed again, simply ignored, means another
metastore succeeds.
2014-05-15 21:06:01,659 WARN server.HiveServer2
(HiveServer2.java:startHiveServer2(112)) - Error starting HiveServer2 on
attempt 1, will retry in 60 seconds
java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate
org.apache.hadoop.hive.metastore.HiveMetaStoreClient
at
org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:347)
at
org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:292)
at
org.apache.hive.service.cli.session.SessionManager.applyAuthorizationConfigPolicy(SessionManager.java:88)
at
org.apache.hive.service.cli.session.SessionManager.init(SessionManager.java:63)
at
org.apache.hive.service.CompositeService.init(CompositeService.java:59)
at org.apache.hive.service.cli.CLIService.init(CLIService.java:110)
at
org.apache.hive.service.CompositeService.init(CompositeService.java:59)
at org.apache.hive.service.server.HiveServer2.init(HiveServer2.java:68)
at
org.apache.hive.service.server.HiveServer2.startHiveServer2(HiveServer2.java:100)
at org.apache.hive.service.server.HiveServer2.main(HiveServer2.java:149)
Caused by: java.lang.RuntimeException: Unable to instantiate
org.apache.hadoop.hive.metastore.HiveMetaStoreClient
at
org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1413)
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:2453)
at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2465)
at
org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:341)
... 9 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at
org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1411)
... 14 more
Caused by: javax.jdo.JDODataStoreException: Exception thrown flushing changes
to datastore
NestedThrowables:
java.sql.BatchUpdateException: Violation of UNIQUE KEY constraint
'GLOBALPRIVILEGEINDEX'. Cannot insert duplicate key in object
'dbo.GLOBAL_PRIVS'. The duplicate key value is (admin, ROLE, All, admin, ROLE).
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:406)
at
org.apache.hadoop.hive.metastore.ObjectStore.grantPrivileges(ObjectStore.java:3877)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
org.apache.hadoop.hive.metastore.RawStoreProxy.invoke(RawStoreProxy.java:108)
at $Proxy10.grantPrivileges(Unknown Source)
at
org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.createDefaultRoles(HiveMetaStore.java:567)
at
org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.init(HiveMetaStore.java:398)
at
org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.<init>(HiveMetaStore.java:356)
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:4944)
at
org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:171)
... 19 more
Caused by: java.sql.BatchUpdateException: Violation of UNIQUE KEY constraint
'GLOBALPRIVILEGEINDEX'. Cannot insert duplicate key in object
'dbo.GLOBAL_PRIVS'. The duplicate key value is (admin, ROLE, All, admin, ROLE).
at
com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeBatch(SQLServerPreparedStatement.java:1160)
at
com.jolbox.bonecp.StatementHandle.executeBatch(StatementHandle.java:424)
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:203)
at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:267)
at org.datanucleus.api.jdo.JDOTransaction.commit(JDOTransaction.java:98)
... 34 more
2014-05-15 21:06:01,667 INFO server.HiveServer2
(HiveServer2.java:startHiveServer2(120)) - Exception caught when calling stop
of HiveServer2 before retrying start
java.lang.NullPointerException
at org.apache.hive.service.server.HiveServer2.stop(HiveServer2.java:82)
at
org.apache.hive.service.server.HiveServer2.startHiveServer2(HiveServer2.java:116)
at org.apache.hive.service.server.HiveServer2.main(HiveServer2.java:149)
> Hive Metastore fails to start with SQLServerException
> -----------------------------------------------------
>
> Key: HIVE-7167
> URL: https://issues.apache.org/jira/browse/HIVE-7167
> Project: Hive
> Issue Type: Bug
> Components: Metastore
> Affects Versions: 0.13.0
> Reporter: Xiaobing Zhou
> Assignee: Xiaobing Zhou
> Labels: patch,, test
> Attachments: HIVE-7167.1.patch, HIVE-7167.2.patch
>
>
> In the case that hiveserver2 uses embedded metastore and hiveserver uses
> remote metastore, this exception comes up when hiveserver2 and hiveserver are
> started simultaneously.
> metastore service status is running but when I launch hive cli, I get
> following metastore connection error:
> C:\apps\dist\hive-0.13.0.2.1.2.0-1660\bin>hive.cmd
> 14/05/09 17:40:03 WARN conf.HiveConf: DEPRECATED: hive.metastore.ds.retry.*
> no l
> onger has any effect. Use hive.hmshandler.retry.* instead
> Logging initialized using configuration in
> file:/C:/apps/dist/hive-0.13.0.2.1.2.
> 0-1660/conf/hive-log4j.properties
> Exception in thread "main" java.lang.RuntimeException:
> java.lang.RuntimeExceptio
> n: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
> at
> org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.jav
> a:347)
> at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681)
> at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
> 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.util.RunJar.main(RunJar.java:212)
> Caused by: java.lang.RuntimeException: Unable to instantiate
> org.apache.hadoop.h
> ive.metastore.HiveMetaStoreClient
> at
> org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStore
> Utils.java:1413)
> at
> org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(Retry
> ingMetaStoreClient.java:62)
> at
> org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(Ret
> ryingMetaStoreClient.java:72)
> at
> org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.ja
> va:2444)
> at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2456)
> at
> org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.jav
> a:341)
> ... 7 more
> Caused by: java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
> orAccessorImpl.java:57)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
> onstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
> at
> org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStore
> Utils.java:1411)
> ... 12 more
> Caused by: MetaException(message:Could not connect to meta store using any of
> th
> e URIs provided. Most recent failure:
> org.apache.thrift.transport.TTransportExce
> ption: java.net.ConnectException: Connection refused: connect
> at org.apache.thrift.transport.TSocket.open(TSocket.java:185)
> at
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaSto
> reClient.java:336)
> at
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaS
> toreClient.java:214)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
> orAccessorImpl.java:57)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
> onstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
> at
> org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStore
> Utils.java:1411)
> at
> org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(Retry
> ingMetaStoreClient.java:62)
> at
> org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(Ret
> ryingMetaStoreClient.java:72)
> at
> org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.ja
> va:2444)
> at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2456)
> at
> org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.jav
> a:341)
> at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681)
> at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
> 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.util.RunJar.main(RunJar.java:212)
> Caused by: java.net.ConnectException: Connection refused: connect
> at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
> at
> java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.ja
> va:339)
> at
> java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocket
> Impl.java:200)
> at
> java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java
> :182)
> at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
> at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
> at java.net.Socket.connect(Socket.java:579)
> at org.apache.thrift.transport.TSocket.open(TSocket.java:180)
> ... 19 more
> )
> at
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaSto
> reClient.java:382)
> at
> org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaS
> toreClient.java:214)
> ... 17 more
> Because of this issue, we are seeing many failures in hive related system
> tests.
--
This message was sent by Atlassian JIRA
(v6.2#6252)