[
https://issues.apache.org/jira/browse/AMBARI-14377?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jonathan Hurley updated AMBARI-14377:
-------------------------------------
Attachment: AMBARI-14377.patch
> HiveServer start fails after enabling security post EU from 2.1 to 2.3 on
> non-HA cluster
> ----------------------------------------------------------------------------------------
>
> Key: AMBARI-14377
> URL: https://issues.apache.org/jira/browse/AMBARI-14377
> Project: Ambari
> Issue Type: Bug
> Components: ambari-server
> Affects Versions: 2.2.0
> Reporter: Jonathan Hurley
> Assignee: Jonathan Hurley
> Priority: Critical
> Fix For: 2.2.0
>
> Attachments: AMBARI-14377.patch
>
>
> *Steps:*
> # Try EU from HDP 2.1 to 2.3.4 on an unsecure and non-HA cluster
> # Let the EU succeed
> # Enable security on the cluster
> Result:
> After enabling security HiveServer2 goes down
> Looked at the value of three properties:
> hive.cluster.delegation.token.store.zookeeper.connectString": "localhost:2181"
> hive.zookeeper.quorum": "localhost:2181"
> hive.cluster.delegation.token.store.class:org.apache.hadoop.hive.thrift.ZooKeeperTokenStore
> It appears that values of first and second property are wrongly set (compared
> this with a fresh non-HA cluster where Kerberos was enabled after install)
> Logs on HiveServer node:
> {code}
> 2015-12-14 17:41:48,495 FATAL [Thread-9]: thrift.ThriftCLIService
> (ThriftBinaryCLIService.java:run(101)) - Error starting HiveServer2: could
> not start ThriftBinaryCLIService
> veserorg.apache.hadoop.hive.thrift.DelegationTokenStore$TokenStoreException:
> Error creating path /hive/cluster/delegationHIVESERVER2/keys
> at
> org.apache.hadoop.hive.thrift.ZooKeeperTokenStore.ensurePath(ZooKeeperTokenStore.java:166)
> at
> org.apache.hadoop.hive.thrift.ZooKeeperTokenStore.initClientAndPaths(ZooKeeperTokenStore.java:236)
> at
> org.apache.hadoop.hive.thrift.ZooKeeperTokenStore.init(ZooKeeperTokenStore.java:469)
> at
> org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server.startDelegationTokenSecretManager(HadoopThriftAuthBridge.java:444)
> at
> org.apache.hive.service.auth.HiveAuthFactory.<init>(HiveAuthFactory.java:124)
> at
> org.apache.hive.service.cli.thrift.ThriftBinaryCLIService.run(ThriftBinaryCLIService.java:57)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.zookeeper.KeeperException$AuthFailedException:
> KeeperErrorCode = AuthFailed for /hive/cluster/delegationHIVESERVER2/keys
> at
> org.apache.zookeeper.KeeperException.create(KeeperException.java:123)
> at
> org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
> at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:783)
> at
> org.apache.curator.framework.imps.CreateBuilderImpl$11.call(CreateBuilderImpl.java:691)
> at
> org.apache.curator.framework.imps.CreateBuilderImpl$11.call(CreateBuilderImpl.java:675)
> at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:107)
> at
> org.apache.curator.framework.imps.CreateBuilderImpl.pathInForeground(CreateBuilderImpl.java:672)
> at
> org.apache.curator.framework.imps.CreateBuilderImpl.protectedPathInForeground(CreateBuilderImpl.java:453)
> at
> org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:443)
> at
> org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:423)
> at
> org.apache.curator.framework.imps.CreateBuilderImpl$3.forPath(CreateBuilderImpl.java:257)
> at
> org.apache.curator.framework.imps.CreateBuilderImpl$3.forPath(CreateBuilderImpl.java:205)
> at
> org.apache.hadoop.hive.thrift.ZooKeeperTokenStore.ensurePath(ZooKeeperTokenStore.java:160)
> ... 6 more
> 2015-12-14 17:41:48,497 INFO [Thread-4]: server.HiveServer2
> (HiveStringUtils.java:run(709)) - SHUTDOWN_MSG:
> /************************************************************
> SHUTDOWN_MSG: Shutting down HiveServer2 at
> os-r6-udmbts-baikaltom20unsecr-re-3.novalocal/172.22.76.200
> ************************************************************/
> 2015-12-14 17:41:58,398 INFO [main]: service.AbstractService
> (AbstractService.java:stop(125)) - Service:CLIService is stopped.
> 2015-12-14 17:41:58,398 INFO [main]: service.AbstractService
> (AbstractService.java:stop(125)) - Service:HiveServer2 is stopped.
> 2015-12-14 17:41:58,403 INFO [main]: server.HiveServer2
> (HiveServer2.java:removeServerInstanceFromZooKeeper(338)) - Server instance
> removed from ZooKeeper.
> 2015-12-14 17:41:58,403 INFO [Thread-7]: server.HiveServer2
> (HiveServer2.java:stop(371)) - Shutting down HiveServer2
> 2015-12-14 17:41:58,403 INFO [Thread-7]: server.HiveServer2
> (HiveServer2.java:removeServerInstanceFromZooKeeper(338)) - Server instance
> removed from ZooKeeper.
> {code}
> As it turns out, the installation wizard sets these at Hive installation
> time, even though they are only used for a Kerberized Hive. Therefore, the
> Kerberization wizard doesn't set these at all.
> When upgrading from HDP 2.1 Hive, the installation wizard hasn't set these
> since they first appeared in HDP 2.2. Therefore, they are never set. The
> right way to fix this is to have the Kerberos Wizard determine that it needs
> to calculate and set them. But that's an architectural change mostly. The
> faster fix is to make Hive consistent - just set them on upgrade from HDP 2.1
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)