diff --git common/src/java/org/apache/hadoop/hive/conf/HiveConf.java common/src/java/org/apache/hadoop/hive/conf/HiveConf.java index f5ad3a882b..372c0658b2 100644 --- common/src/java/org/apache/hadoop/hive/conf/HiveConf.java +++ common/src/java/org/apache/hadoop/hive/conf/HiveConf.java @@ -478,6 +478,9 @@ private static void populateLlapDaemonVarsSet(Set llapDaemonVarsSetLocal REPL_DUMP_METADATA_ONLY("hive.repl.dump.metadata.only", false, "Indicates whether replication dump only metadata information or data + metadata. \n" + "This config makes hive.repl.include.external.tables config ineffective."), + REPL_DUMP_SKIP_IMMUTABLE_DATA_COPY("hive.repl.dump.skip.immutable.data.copy", false, + "Indicates whether replication dump can skip copyTask and refer to \n" + + " original path instead. This would retain all table and partition meta"), REPL_DUMP_METADATA_ONLY_FOR_EXTERNAL_TABLE("hive.repl.dump.metadata.only.for.external.table", false, "Indicates whether external table replication dump only metadata information or data + metadata"), diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplDumpWork.java ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplDumpWork.java index 86f92338a6..b9cb45d2a4 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplDumpWork.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplDumpWork.java @@ -33,6 +33,7 @@ import java.io.Serializable; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -162,6 +163,9 @@ public void setResultValues(List resultValues) { } public List> externalTableCopyTasks(TaskTracker tracker, HiveConf conf) { + if (conf.getBoolVar(HiveConf.ConfVars.REPL_DUMP_SKIP_IMMUTABLE_DATA_COPY)) { + return Collections.emptyList(); + } List> tasks = new ArrayList<>(); while (dirCopyIterator.hasNext() && tracker.canAddMoreTasks()) { DirCopyWork dirCopyWork = dirCopyIterator.next(); @@ -174,6 +178,9 @@ public void setResultValues(List resultValues) { } public List> managedTableCopyTasks(TaskTracker tracker, HiveConf conf) { + if (conf.getBoolVar(HiveConf.ConfVars.REPL_DUMP_SKIP_IMMUTABLE_DATA_COPY)) { + return Collections.emptyList(); + } List> tasks = new ArrayList<>(); while (managedTableCopyPathIterator.hasNext() && tracker.canAddMoreTasks()) { EximUtil.ManagedTableCopyPath managedTableCopyPath = managedTableCopyPathIterator.next();