Index: ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java (revision 1637445) +++ ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java (working copy) @@ -27,6 +27,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.ql.QueryPlan; import org.apache.hadoop.hive.ql.exec.ExplainTask; import org.apache.hadoop.hive.ql.exec.Task; @@ -89,6 +90,8 @@ @Override public void run(final HookContext hookContext) throws Exception { final long currentTime = System.currentTimeMillis(); + final HiveConf conf = new HiveConf(hookContext.getConf()); + executor.submit(new Runnable() { @Override public void run() { @@ -110,19 +113,19 @@ switch(hookContext.getHookType()) { case PRE_EXEC_HOOK: ExplainTask explain = new ExplainTask(); - explain.initialize(hookContext.getConf(), plan, null); + explain.initialize(conf, plan, null); String query = plan.getQueryStr(); List> rootTasks = plan.getRootTasks(); JSONObject explainPlan = explain.getJSONPlan(null, null, rootTasks, plan.getFetchTask(), true, false, false); - fireAndForget(hookContext.getConf(), createPreHookEvent(queryId, query, + fireAndForget(conf, createPreHookEvent(queryId, query, explainPlan, queryStartTime, user, numMrJobs, numTezJobs)); break; case POST_EXEC_HOOK: - fireAndForget(hookContext.getConf(), createPostHookEvent(queryId, currentTime, user, true)); + fireAndForget(conf, createPostHookEvent(queryId, currentTime, user, true)); break; case ON_FAILURE_HOOK: - fireAndForget(hookContext.getConf(), createPostHookEvent(queryId, currentTime, user, false)); + fireAndForget(conf, createPostHookEvent(queryId, currentTime, user, false)); break; default: //ignore