Details
-
Sub-task
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
The getTokenStore method will not work for the DBTokenStore and ZKTokenStore since they implement org.apache.hadoop.hive.thrift.DelegationTokenStore instead of org.apache.hadoop.hive.metastore.security.DelegationTokenStore
private DelegationTokenStore getTokenStore(Configuration conf) throws IOException { String tokenStoreClassName = MetastoreConf.getVar(conf, MetastoreConf.ConfVars.DELEGATION_TOKEN_STORE_CLS, ""); // The second half of this if is to catch cases where users are passing in a HiveConf for // configuration. It will have set the default value of // "hive.cluster.delegation.token.store .class" to // "org.apache.hadoop.hive.thrift.MemoryTokenStore" as part of its construction. But this is // the hive-shims version of the memory store. We want to convert this to our default value. if (StringUtils.isBlank(tokenStoreClassName) || "org.apache.hadoop.hive.thrift.MemoryTokenStore".equals(tokenStoreClassName)) { return new MemoryTokenStore(); } try { Class<? extends DelegationTokenStore> storeClass = Class.forName(tokenStoreClassName).asSubclass(DelegationTokenStore.class); return ReflectionUtils.newInstance(storeClass, conf); } catch (ClassNotFoundException e) { throw new IOException("Error initializing delegation token store: " + tokenStoreClassName, e); } }
Attachments
Attachments
Issue Links
- links to