diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java index ed797fc5dc..30cbd84cc4 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java @@ -29,6 +29,7 @@ import java.net.URISyntaxException; import java.sql.SQLException; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; @@ -600,8 +601,8 @@ private int handleWorkloadManagementServiceChange(WorkloadManager wm, TezSession } } if (pm != null) { - pm.updateTriggers(appliedRp); - LOG.info("Updated tez session pool manager with active resource plan: {}", name); + Collection appliedTriggers = pm.updateTriggers(appliedRp); + LOG.info("Updated tez session pool manager with active resource plan: {} appliedTriggers: {}", name, appliedTriggers); } return 0; } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionPoolManager.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionPoolManager.java index 2633390861..7c0a1fe120 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionPoolManager.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionPoolManager.java @@ -21,9 +21,12 @@ import org.apache.hadoop.hive.ql.exec.tez.TezSessionState.HiveResources; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; +import java.util.Set; import java.util.concurrent.Semaphore; import java.util.concurrent.TimeUnit; @@ -113,9 +116,9 @@ public void startPool(HiveConf conf, final WMFullResourcePlan resourcePlan) thro } initTriggers(conf); if (resourcePlan != null) { - updateTriggers(resourcePlan); - LOG.info("Updated tez session pool manager with active resource plan: {}", - resourcePlan.getPlan().getName()); + Collection appliedTriggers = updateTriggers(resourcePlan); + LOG.info("Updated tez session pool manager with triggers {} from active resource plan: {}", + appliedTriggers, resourcePlan.getPlan().getName()); } } @@ -531,7 +534,8 @@ private void updateSessions() { } } - public void updateTriggers(final WMFullResourcePlan appliedRp) { + public Collection updateTriggers(final WMFullResourcePlan appliedRp) { + Set triggerNames = new HashSet<>(); if (sessionTriggerProvider != null) { List wmTriggers = appliedRp != null ? appliedRp.getTriggers() : null; List triggers = new ArrayList<>(); @@ -539,11 +543,14 @@ public void updateTriggers(final WMFullResourcePlan appliedRp) { for (WMTrigger wmTrigger : wmTriggers) { if (wmTrigger.isSetIsInUnmanaged() && wmTrigger.isIsInUnmanaged()) { triggers.add(ExecutionTrigger.fromWMTrigger(wmTrigger)); + triggerNames.add(wmTrigger.getTriggerName()); } } } sessionTriggerProvider.setTriggers(Collections.unmodifiableList(triggers)); } + + return triggerNames; } /** Called by TezSessionPoolSession when closed. */ diff --git a/service/src/java/org/apache/hive/service/server/HiveServer2.java b/service/src/java/org/apache/hive/service/server/HiveServer2.java index 452b8d823b..00f6e90f6e 100644 --- a/service/src/java/org/apache/hive/service/server/HiveServer2.java +++ b/service/src/java/org/apache/hive/service/server/HiveServer2.java @@ -732,23 +732,21 @@ public void notLeader() { private void startOrReconnectTezSessions() { LOG.info("Starting/Reconnecting tez sessions.."); // TODO: add tez session reconnect after TEZ-3875 - WMFullResourcePlan resourcePlan = null; - if (!StringUtils.isEmpty(wmQueue)) { - try { - resourcePlan = sessionHive.getActiveResourcePlan(); - } catch (HiveException e) { - if (!HiveConf.getBoolVar(getHiveConf(), ConfVars.HIVE_IN_TEST_SSL)) { - throw new RuntimeException(e); - } else { - resourcePlan = null; // Ignore errors in SSL tests where the connection is misconfigured. - } + WMFullResourcePlan resourcePlan; + try { + resourcePlan = sessionHive.getActiveResourcePlan(); + } catch (HiveException e) { + if (!HiveConf.getBoolVar(getHiveConf(), ConfVars.HIVE_IN_TEST_SSL)) { + throw new RuntimeException(e); + } else { + resourcePlan = null; // Ignore errors in SSL tests where the connection is misconfigured. } + } - if (resourcePlan == null && HiveConf.getBoolVar( - getHiveConf(), ConfVars.HIVE_IN_TEST)) { - LOG.info("Creating a default resource plan for test"); - resourcePlan = createTestResourcePlan(); - } + if (resourcePlan == null && HiveConf.getBoolVar( + getHiveConf(), ConfVars.HIVE_IN_TEST)) { + LOG.info("Creating a default resource plan for test"); + resourcePlan = createTestResourcePlan(); } initAndStartTezSessionPoolManager(resourcePlan); initAndStartWorkloadManager(resourcePlan); @@ -763,7 +761,8 @@ private void initAndStartTezSessionPoolManager(final WMFullResourcePlan resource // SessionState.get() return null during createTezDir try { // will be invoked anyway in TezTask. Doing it early to initialize triggers for non-pool tez session. - LOG.info("Initializing tez session pool manager"); + LOG.info("Initializing tez session pool manager. Active resource plan: {}", + resourcePlan == null || resourcePlan.getPlan() == null ? "null" : resourcePlan.getPlan().getName()); tezSessionPoolManager = TezSessionPoolManager.getInstance(); HiveConf hiveConf = getHiveConf(); if (hiveConf.getBoolVar(ConfVars.HIVE_SERVER2_TEZ_INITIALIZE_DEFAULT_SESSIONS)) { @@ -781,7 +780,8 @@ private void initAndStartTezSessionPoolManager(final WMFullResourcePlan resource private void initAndStartWorkloadManager(final WMFullResourcePlan resourcePlan) { if (!StringUtils.isEmpty(wmQueue)) { // Initialize workload management. - LOG.info("Initializing workload management"); + LOG.info("Initializing workload management. Active resource plan: {}", + resourcePlan == null || resourcePlan.getPlan() == null ? "null" : resourcePlan.getPlan().getName()); try { wm = WorkloadManager.create(wmQueue, getHiveConf(), resourcePlan); wm.start(); @@ -790,7 +790,8 @@ private void initAndStartWorkloadManager(final WMFullResourcePlan resourcePlan) throw new ServiceException("Unable to instantiate and start Workload Manager", e); } } else { - LOG.info("Workload management is not enabled."); + LOG.info("Workload management is not enabled as {} config is not set", + ConfVars.HIVE_SERVER2_TEZ_INTERACTIVE_QUEUE.varname); } }