diff --git a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java index 9e5fd37..923ef08 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java @@ -1729,7 +1729,7 @@ public int execute(boolean deferClose) throws CommandNeedRetryException { SessionState ss = SessionState.get(); hookContext = new HookContext(plan, queryState, ctx.getPathToCS(), ss.getUserName(), - ss.getUserIpAddress(), operationId); + ss.getUserIpAddress(), operationId, ss.getSessionId()); hookContext.setHookType(HookContext.HookType.PRE_EXEC_HOOK); for (Hook peh : getHooks(HiveConf.ConfVars.PREEXECHOOKS)) { diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java index 7438570..8ee5c04 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java @@ -138,7 +138,7 @@ public void run() { explain.initialize(queryState, plan, null, null); String query = plan.getQueryStr(); JSONObject explainPlan = explain.getJSONPlan(null, work); - String logID = conf.getLogIdVar(SessionState.get().getSessionId()); + String logID = conf.getLogIdVar(hookContext.getSessionId()); fireAndForget(conf, createPreHookEvent(queryId, query, explainPlan, queryStartTime, user, requestuser, numMrJobs, numTezJobs, opId, logID)); break; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java index 8db0124..3b4cc2c 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java @@ -61,10 +61,11 @@ // unique id set for operation when run from HS2, base64 encoded value of // TExecuteStatementResp.TOperationHandle.THandleIdentifier.guid private final String operationId; + private final String sessionId; public HookContext(QueryPlan queryPlan, QueryState queryState, Map inputPathToContentSummary, String userName, String ipAddress, - String operationId) throws Exception { + String operationId, String sessionId) throws Exception { this.queryPlan = queryPlan; this.queryState = queryState; this.conf = queryState.getConf(); @@ -82,6 +83,7 @@ public HookContext(QueryPlan queryPlan, QueryState queryState, this.userName = userName; this.ipAddress = ipAddress; this.operationId = operationId; + this.sessionId = sessionId; } public QueryPlan getQueryPlan() { @@ -199,4 +201,8 @@ public String getOperationId() { public QueryState getQueryState() { return queryState; } + + public String getSessionId() { + return sessionId; + } }