diff --git a/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/CompactorMR.java b/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/CompactorMR.java index 7c79d7ba18..0f1579aa54 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/CompactorMR.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/CompactorMR.java @@ -94,6 +94,7 @@ import org.apache.hadoop.mapred.RunningJob; import org.apache.hadoop.mapred.TaskAttemptContext; import org.apache.hadoop.mapred.lib.NullOutputFormat; +import org.apache.hadoop.mapreduce.security.TokenCache; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.util.StringUtils; import org.apache.hive.common.util.HiveStringUtils; @@ -779,6 +780,15 @@ private void launchCompactionJob(JobConf job, Path baseDir, CompactionType compa job.setLong(MIN_TXN, minTxn); job.setLong(MAX_TXN, maxTxn); + // Add tokens for all the file system in the input path. + ArrayList dirs = new ArrayList<>(); + if (baseDir != null) { + dirs.add(baseDir); + } + dirs.addAll(deltaDirs); + dirs.addAll(dirsToSearch); + TokenCache.obtainTokensForNamenodes(job.getCredentials(), dirs.toArray(new Path[]{}), job); + if (hiveConf.getBoolVar(HiveConf.ConfVars.HIVE_IN_TEST)) { mrJob = job; }