diff --git hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/AppConfig.java hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/AppConfig.java index 8244274..062d5a0 100644 --- hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/AppConfig.java +++ hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/AppConfig.java @@ -239,8 +239,24 @@ private static void logConfigLoadAttempt(String path) { private String dumpEnvironent() { StringBuilder sb = TempletonUtils.dumpPropMap("========WebHCat System.getenv()========", System.getenv()); sb.append("START========WebHCat AppConfig.iterator()========: \n"); - Iterator> configIter = this.iterator(); - List> configVals = new ArrayList>(); + dumpConfig(this, sb); + sb.append("END========WebHCat AppConfig.iterator()========: \n"); + + sb.append(TempletonUtils.dumpPropMap("========WebHCat System.getProperties()========", System.getProperties())); + + sb.append("START========\"new HiveConf()\"========\n"); + HiveConf c = new HiveConf(); + sb.append("hiveDefaultUrl=").append(c.getHiveDefaultLocation()).append('\n'); + sb.append("hiveSiteURL=").append(HiveConf.getHiveSiteLocation()).append('\n'); + sb.append("hiveServer2SiteUrl=").append(HiveConf.getHiveServer2SiteLocation()).append('\n'); + sb.append("hivemetastoreSiteUrl=").append(HiveConf.getMetastoreSiteLocation()).append('\n'); + dumpConfig(c, sb); + sb.append("END========\"new HiveConf()\"========\n"); + return sb.toString(); + } + private static void dumpConfig(Configuration conf, StringBuilder sb) { + Iterator> configIter = conf.iterator(); + List>configVals = new ArrayList<>(); while(configIter.hasNext()) { configVals.add(configIter.next()); } @@ -253,20 +269,18 @@ public int compare(Map.Entry ent, Map.Entry ent2 for(Map.Entry entry : configVals) { //use get() to make sure variable substitution works if(entry.getKey().toLowerCase().contains("path")) { - StringTokenizer st = new StringTokenizer(get(entry.getKey()), File.pathSeparator); + StringTokenizer st = new StringTokenizer(conf.get(entry.getKey()), File.pathSeparator); sb.append(entry.getKey()).append("=\n"); while(st.hasMoreTokens()) { sb.append(" ").append(st.nextToken()).append(File.pathSeparator).append('\n'); } } else { - sb.append(entry.getKey()).append('=').append(get(entry.getKey())).append('\n'); + sb.append(entry.getKey()).append('=').append(conf.get(entry.getKey())).append('\n'); } } - sb.append("END========WebHCat AppConfig.iterator()========: \n"); - sb.append(TempletonUtils.dumpPropMap("========WebHCat System.getProperties()========", System.getProperties())); - return sb.toString(); } + public void startCleanup() { JobState.getStorageInstance(this).startCleanup(this); } diff --git hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/SecureProxySupport.java hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/SecureProxySupport.java index b4687b5..1ef5f27 100644 --- hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/SecureProxySupport.java +++ hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/SecureProxySupport.java @@ -86,6 +86,9 @@ public Path open(String user, Configuration conf) } catch (Exception e) { throw new IOException(e); } + if(hcatTokenStr == null) { + LOG.error("open(" + user + ") token=null"); + } Token msToken = new Token(); msToken.decodeFromUrlString(hcatTokenStr); msToken.setService(new Text(HCAT_SERVICE)); @@ -175,11 +178,10 @@ public Object run() throws IOException { } private String buildHcatDelegationToken(String user) - throws IOException, InterruptedException, MetaException, TException { + throws IOException, InterruptedException, TException { final HiveConf c = new HiveConf(); final IMetaStoreClient client = HCatUtil.getHiveMetastoreClient(c); LOG.info("user: " + user + " loginUser: " + UserGroupInformation.getLoginUser().getUserName()); - final TokenWrapper twrapper = new TokenWrapper(); final UserGroupInformation ugi = UgiFactory.getUgi(user); String s = ugi.doAs(new PrivilegedExceptionAction() { public String run()