Index: ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezJobMonitor.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezJobMonitor.java (revision 1637522) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezJobMonitor.java (working copy) @@ -110,9 +110,13 @@ /* Pretty print the values */ private final NumberFormat secondsFormat; private final NumberFormat commaFormat; - private static final List shutdownList; + private static List shutdownList; - static { + public static void initShutdownHook() { + if (shutdownList != null) { + return; + } + shutdownList = Collections.synchronizedList(new LinkedList()); Runtime.getRuntime().addShutdownHook(new Thread() { @Override @@ -130,9 +134,10 @@ } } }); - } + } public TezJobMonitor() { + initShutdownHook(); console = SessionState.getConsole(); secondsFormat = new DecimalFormat("#0.00"); commaFormat = NumberFormat.getNumberInstance(Locale.US); Index: ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionState.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionState.java (revision 1637522) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionState.java (working copy) @@ -187,6 +187,7 @@ LOG.info("Opening new Tez Session (id: " + sessionId + ", scratch dir: " + tezScratchDir + ")"); + TezJobMonitor.initShutdownHook(); session.start(); if (HiveConf.getBoolVar(conf, ConfVars.HIVE_PREWARM_ENABLED)) {