diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplLoadTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplLoadTask.java index 6b5fc545ab..aa41301ae4 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplLoadTask.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplLoadTask.java @@ -72,6 +72,12 @@ public String getName() { @Override protected int execute(DriverContext driverContext) { + Task rootTask = work.getRootTask(); + if (rootTask != null) { + rootTask.setChildTasks(null); + } + work.setRootTask(this); + this.parentTasks = null; if (work.isIncrementalLoad()) { return executeIncrementalLoad(driverContext); } else { diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplLoadWork.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplLoadWork.java index 8921e948fc..fdbcb15c72 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplLoadWork.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplLoadWork.java @@ -25,6 +25,7 @@ import org.apache.hadoop.hive.ql.exec.repl.incremental.IncrementalLoadTasksBuilder; import org.apache.hadoop.hive.ql.plan.Explain; import org.apache.hadoop.hive.ql.session.LineageState; +import org.apache.hadoop.hive.ql.exec.Task; import java.io.IOException; import java.io.Serializable; @@ -42,6 +43,7 @@ private int loadTaskRunCount = 0; private DatabaseEvent.State state = null; private final transient IncrementalLoadTasksBuilder incrementalLoad; + private transient Task rootTask; /* these are sessionState objects that are copied over to work to allow for parallel execution. @@ -56,6 +58,7 @@ public ReplLoadWork(HiveConf hiveConf, String dumpDirectory, String dbNameToLoad sessionStateLineageState = lineageState; this.dumpDirectory = dumpDirectory; this.dbNameToLoadIn = dbNameToLoadIn; + rootTask = null; if (isIncrementalDump) { incrementalIterator = new IncrementalLoadEventsIterator(dumpDirectory, hiveConf); this.bootstrapIterator = null; @@ -110,4 +113,12 @@ public IncrementalLoadEventsIterator getIncrementalIterator() { public IncrementalLoadTasksBuilder getIncrementalLoadTaskBuilder() { return incrementalLoad; } + + public Task getRootTask() { + return rootTask; + } + + public void setRootTask(Task rootTask) { + this.rootTask = rootTask; + } }