diff --git a/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/Cleaner.java b/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/Cleaner.java index 3565616171..3bc1f8a563 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/Cleaner.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/Cleaner.java @@ -20,8 +20,7 @@ import org.apache.hadoop.hive.common.FileUtils; import org.apache.hadoop.hive.metastore.ReplChangeManager; import org.apache.hadoop.hive.metastore.txn.TxnStore; -import org.apache.hadoop.hive.ql.metadata.Hive; -import org.apache.hadoop.hive.ql.metadata.HiveException; +import org.apache.hadoop.hive.metastore.api.NoSuchObjectException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.hadoop.fs.FileStatus; @@ -58,6 +57,8 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; +import static org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.getDefaultCatalog; + /** * A class to clean directories after compactions. This will run in a separate thread. */ @@ -323,7 +324,7 @@ private static String idWatermark(CompactionInfo ci) { return " id=" + ci.id; } private void removeFiles(String location, ValidWriteIdList writeIdList, CompactionInfo ci) - throws IOException, HiveException { + throws IOException, NoSuchObjectException { Path locPath = new Path(location); AcidUtils.Directory dir = AcidUtils.getAcidState(locPath, conf, writeIdList); List obsoleteDirs = dir.getObsolete(); @@ -349,11 +350,12 @@ private void removeFiles(String location, ValidWriteIdList writeIdList, Compacti } FileSystem fs = filesToDelete.get(0).getFileSystem(conf); - Database db = Hive.get().getDatabase(ci.dbname); + Database db = rs.getDatabase(getDefaultCatalog(conf), ci.dbname); + Boolean isSourceOfRepl = ReplChangeManager.isSourceOfReplication(db); for (Path dead : filesToDelete) { LOG.debug("Going to delete path " + dead.toString()); - if (ReplChangeManager.isSourceOfReplication(db)) { + if (isSourceOfRepl) { replChangeManager.recycle(dead, ReplChangeManager.RecycleType.MOVE, true); } fs.delete(dead, true); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/CompactorThread.java b/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/CompactorThread.java index dd0929f2b9..1f577543af 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/CompactorThread.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/CompactorThread.java @@ -69,6 +69,7 @@ public void setConf(Configuration configuration) { // HiveConf is moved to the standalone metastore. conf = (configuration instanceof HiveConf) ? (HiveConf)configuration : new HiveConf(configuration, HiveConf.class); + conf.setVar(HiveConf.ConfVars.METASTOREURIS,""); } @Override