This is an automated email from the ASF dual-hosted git repository. prasanthj pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push: new 928f3d6 HIVE-21591: Using triggers in non-LLAP mode should not require wm queue (Prasanth Jayachandran reviewed by Daniel Dai) 928f3d6 is described below commit 928f3d65c324c785565cdcc1d809695b1a5344bd Author: Prasanth Jayachandran <prasan...@apache.org> AuthorDate: Tue Apr 9 15:01:19 2019 -0700 HIVE-21591: Using triggers in non-LLAP mode should not require wm queue (Prasanth Jayachandran reviewed by Daniel Dai) --- .../org/apache/hadoop/hive/ql/exec/DDLTask.java | 5 +-- .../hive/ql/exec/tez/TezSessionPoolManager.java | 15 ++++++--- .../apache/hive/service/server/HiveServer2.java | 37 +++++++++++----------- 3 files changed, 33 insertions(+), 24 deletions(-) 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 269cd85..a1d795f 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 @@ -26,6 +26,7 @@ import java.io.Serializable; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; @@ -582,8 +583,8 @@ public class DDLTask extends Task<DDLWork> implements Serializable { } } if (pm != null) { - pm.updateTriggers(appliedRp); - LOG.info("Updated tez session pool manager with active resource plan: {}", name); + Collection<String> 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 2633390..7c0a1fe 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 @@ package org.apache.hadoop.hive.ql.exec.tez; 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 class TezSessionPoolManager extends TezSessionPoolSession.AbstractTrigger } initTriggers(conf); if (resourcePlan != null) { - updateTriggers(resourcePlan); - LOG.info("Updated tez session pool manager with active resource plan: {}", - resourcePlan.getPlan().getName()); + Collection<String> appliedTriggers = updateTriggers(resourcePlan); + LOG.info("Updated tez session pool manager with triggers {} from active resource plan: {}", + appliedTriggers, resourcePlan.getPlan().getName()); } } @@ -531,7 +534,8 @@ public class TezSessionPoolManager extends TezSessionPoolSession.AbstractTrigger } } - public void updateTriggers(final WMFullResourcePlan appliedRp) { + public Collection<String> updateTriggers(final WMFullResourcePlan appliedRp) { + Set<String> triggerNames = new HashSet<>(); if (sessionTriggerProvider != null) { List<WMTrigger> wmTriggers = appliedRp != null ? appliedRp.getTriggers() : null; List<Trigger> triggers = new ArrayList<>(); @@ -539,11 +543,14 @@ public class TezSessionPoolManager extends TezSessionPoolSession.AbstractTrigger 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 452b8d8..00f6e90 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 class HiveServer2 extends CompositeService { 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 @@ public class HiveServer2 extends CompositeService { // 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 @@ public class HiveServer2 extends CompositeService { 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 @@ public class HiveServer2 extends CompositeService { 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); } }