[ https://issues.apache.org/jira/browse/HIVE-22193?focusedWorklogId=790681&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-790681 ]
ASF GitHub Bot logged work on HIVE-22193: ----------------------------------------- Author: ASF GitHub Bot Created on: 14/Jul/22 03:16 Start Date: 14/Jul/22 03:16 Worklog Time Spent: 10m Work Description: dengzhhu653 commented on code in PR #3386: URL: https://github.com/apache/hive/pull/3386#discussion_r920691158 ########## service/src/java/org/apache/hive/service/server/HiveServer2.java: ########## @@ -895,6 +897,46 @@ private void stopOrDisconnectTezSessions() { } } + public synchronized void decommission() { + LOG.info("Decommissioning HiveServer2"); + // Remove this server instance from ZooKeeper if dynamic service discovery is set + if (serviceDiscovery && !activePassiveHA && zooKeeperHelper != null) { + try { + zooKeeperHelper.removeServerInstanceFromZooKeeper(); + } catch (Exception e) { + LOG.error("Error removing znode for this HiveServer2 instance from ZooKeeper.", e); + } + } + super.decommission(); + } + + public synchronized void graceful_stop() { + try { + decommission(); + long maxTimeForWait = HiveConf.getTimeVar(getHiveConf(), + HiveConf.ConfVars.HIVE_SERVER2_GRACEFUL_STOP_TIMEOUT, TimeUnit.MILLISECONDS); + if (maxTimeForWait > 0) { + ExecutorService service = Executors.newSingleThreadExecutor(); + Future future = service.submit(() -> { + while (getCliService() != null && getCliService().getSessionManager() Review Comment: done, thank you! Issue Time Tracking ------------------- Worklog Id: (was: 790681) Time Spent: 4h 50m (was: 4h 40m) > Graceful Shutdown HiveServer2 > ----------------------------- > > Key: HIVE-22193 > URL: https://issues.apache.org/jira/browse/HIVE-22193 > Project: Hive > Issue Type: Improvement > Components: Server Infrastructure > Reporter: chenshiyun > Assignee: Zhihua Deng > Priority: Major > Labels: pull-request-available > Time Spent: 4h 50m > Remaining Estimate: 0h > > We have a lot of HiveSever2 servers deployed on production environment (about > 10 nodes). > However, if we want to change configuration or add patches, we would have to > restart all of them one by one. So all the Hive Sql job running on the server > will be defeated, and there may be some mistakes come up on the jdbc client > occasionally. > In the proposed changes, planning to add Graceful Shutdown HiveSever2 method > to avoid affecting the production environment jobs -- This message was sent by Atlassian Jira (v8.20.10#820010)