Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
2.1.0
Description
When adding Hive to an existing Kerberized cluster, the hive-site/hive.metastore.sasl.enabled value is set to false when it should be true. If Hive was installed before enabling Kerberos,
hive-site/hive.metastore.sasl.enabled is set to true after enabling Kerberos.
If hive-site/hive.metastore.sasl.enabled is false in a Kerberized cluster, the following error can be seen in the hiverserver2.log:
2015-07-01 23:35:16,128 ERROR [HiveServer2-Handler-Pool: Thread-37]: server.TThreadPoolServer (TThreadPoolServer.java:run(296)) - Error occurred during processing of message. java.lang.RuntimeException: org.apache.thrift.transport.TTransportException: Unsupported mechanism type GSSAPI at org.apache.thrift.transport.TSaslServerTransport$Factory.getTransport(TSaslServerTransport.java:219) at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:268) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.thrift.transport.TTransportException: Unsupported mechanism type GSSAPI at org.apache.thrift.transport.TSaslTransport.sendAndThrowMessage(TSaslTransport.java:232) at org.apache.thrift.transport.TSaslServerTransport.handleSaslStartMessage(TSaslServerTransport.java:138) at org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:271) at org.apache.thrift.transport.TSaslServerTransport.open(TSaslServerTransport.java:41) at org.apache.thrift.transport.TSaslServerTransport$Factory.getTransport(TSaslServerTransport.java:216) ... 4 more
Cause
It appears that the front end is updating the Kerberos Descriptor artifact with old data rather than the data the is specified on the stack's Kerberos Descriptor. This occurs during the transition between the "Review" and "Install, Start, Test" pages of the "Add Service Wizard".
Solution
Use the current Kerberos Descriptor's values as default value for the updated Kerberos Descriptor and update only what the user changes in the relevant fields.