[ https://issues.apache.org/jira/browse/HIVE-13160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15179167#comment-15179167 ]
Prasanth Jayachandran commented on HIVE-13160: ---------------------------------------------- This breaks compatibility when running CLI with old HMS. Earlier this exception was ignored by CLI when session is started but now it throws. I am not sure what the expected behavior here is, should the new clients (> 2.0) be compatible with old HMS? > HS2 unable to load UDFs on startup when HMS is not ready > -------------------------------------------------------- > > Key: HIVE-13160 > URL: https://issues.apache.org/jira/browse/HIVE-13160 > Project: Hive > Issue Type: Bug > Components: HiveServer2 > Affects Versions: 1.2.1 > Reporter: Eric Lin > Assignee: Aihua Xu > Fix For: 2.1.0 > > Attachments: HIVE-13160.1.patch, HIVE-13160.2.patch > > > The error looks like this: > {code} > 2016-02-18 14:43:54,251 INFO hive.metastore: [main]: Trying to connect to > metastore with URI thrift://host-10-17-81-201.coe.cloudera.com:9083 > 2016-02-18 14:48:54,692 WARN hive.metastore: [main]: Failed to connect to > the MetaStore Server... > 2016-02-18 14:48:54,692 INFO hive.metastore: [main]: Waiting 1 seconds > before next connection attempt. > 2016-02-18 14:48:55,692 INFO hive.metastore: [main]: Trying to connect to > metastore with URI thrift://host-10-17-81-201.coe.cloudera.com:9083 > 2016-02-18 14:53:55,800 WARN hive.metastore: [main]: Failed to connect to > the MetaStore Server... > 2016-02-18 14:53:55,800 INFO hive.metastore: [main]: Waiting 1 seconds > before next connection attempt. > 2016-02-18 14:53:56,801 INFO hive.metastore: [main]: Trying to connect to > metastore with URI thrift://host-10-17-81-201.coe.cloudera.com:9083 > 2016-02-18 14:58:56,967 WARN hive.metastore: [main]: Failed to connect to > the MetaStore Server... > 2016-02-18 14:58:56,967 INFO hive.metastore: [main]: Waiting 1 seconds > before next connection attempt. > 2016-02-18 14:58:57,994 WARN hive.ql.metadata.Hive: [main]: Failed to > register all functions. > java.lang.RuntimeException: Unable to instantiate > org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient > at > org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1492) > at > org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:64) > at > org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:74) > at > org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:2915) > ....... > 016-02-18 14:58:57,997 INFO hive.metastore: [main]: Trying to connect to > metastore with URI thrift://host-10-17-81-201.coe.cloudera.com:9083 > 2016-02-18 15:03:58,094 WARN hive.metastore: [main]: Failed to connect to > the MetaStore Server... > 2016-02-18 15:03:58,095 INFO hive.metastore: [main]: Waiting 1 seconds > before next connection attempt. > 2016-02-18 15:03:59,095 INFO hive.metastore: [main]: Trying to connect to > metastore with URI thrift://host-10-17-81-201.coe.cloudera.com:9083 > 2016-02-18 15:08:59,203 WARN hive.metastore: [main]: Failed to connect to > the MetaStore Server... > 2016-02-18 15:08:59,203 INFO hive.metastore: [main]: Waiting 1 seconds > before next connection attempt. > 2016-02-18 15:09:00,203 INFO hive.metastore: [main]: Trying to connect to > metastore with URI thrift://host-10-17-81-201.coe.cloudera.com:9083 > 2016-02-18 15:14:00,304 WARN hive.metastore: [main]: Failed to connect to > the MetaStore Server... > 2016-02-18 15:14:00,304 INFO hive.metastore: [main]: Waiting 1 seconds > before next connection attempt. > 2016-02-18 15:14:01,306 INFO org.apache.hive.service.server.HiveServer2: > [main]: Shutting down HiveServer2 > 2016-02-18 15:14:01,308 INFO org.apache.hive.service.server.HiveServer2: > [main]: Exception caught when calling stop of HiveServer2 before retrying > start > java.lang.NullPointerException > at > org.apache.hive.service.server.HiveServer2.stop(HiveServer2.java:283) > at > org.apache.hive.service.server.HiveServer2.startHiveServer2(HiveServer2.java:351) > at > org.apache.hive.service.server.HiveServer2.access$400(HiveServer2.java:69) > at > org.apache.hive.service.server.HiveServer2$StartOptionExecutor.execute(HiveServer2.java:545) > {code} > And then none of the functions will be available for use as HS2 does not > re-register them after HMS is up and ready. > This is not desired behaviour, we shouldn't allow HS2 to be in a servicing > state if function list is not ready. Or, maybe instead of initialize the > function list when HS2 starts, try to load the function list when each Hive > session is created. Of course we can have a cache of function list somewhere > for better performance, but we would better decouple it from class Hive. -- This message was sent by Atlassian JIRA (v6.3.4#6332)