[ 
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)

Reply via email to