diff --git cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java index 27b8504..caf5200 100644 --- cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java +++ cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java @@ -400,7 +400,6 @@ public void handle(Signal signal) { // First, kill any running MR jobs HadoopJobExecHelper.killRunningJobs(); HiveInterruptUtils.interrupt(); - this.cliThread.interrupt(); } }); } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java index 429f6f2..e52d364 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java @@ -2132,14 +2132,14 @@ public static void copyTableJobPropertiesToConf(TableDesc tbl, JobConf job) { * @return the summary of all the input paths. * @throws IOException */ - public static ContentSummary getInputSummary(Context ctx, MapWork work, PathFilter filter) + public static ContentSummary getInputSummary(final Context ctx, MapWork work, PathFilter filter) throws IOException { PerfLogger perfLogger = PerfLogger.getPerfLogger(); perfLogger.PerfLogBegin(CLASS_NAME, PerfLogger.INPUT_SUMMARY); long[] summary = {0, 0, 0}; - List pathNeedProcess = new ArrayList(); + final List pathNeedProcess = new ArrayList(); // Since multiple threads could call this method concurrently, locking // this method will avoid number of threads out of control. @@ -2182,6 +2182,13 @@ public static ContentSummary getInputSummary(Context ctx, MapWork work, PathFilt HiveInterruptCallback interrup = HiveInterruptUtils.add(new HiveInterruptCallback() { @Override public void interrupt() { + for (String path : pathNeedProcess) { + try { + new Path(path).getFileSystem(ctx.getConf()).close(); + } catch (IOException ignore) { + LOG.debug(ignore); + } + } if (executor != null) { executor.shutdownNow(); }