From 0e3086bf73ede3ad6ecd3f7518e739aa50f3923b Mon Sep 17 00:00:00 2001 From: Elliott Clark Date: Wed, 30 Sep 2015 15:30:15 -0700 Subject: [PATCH] HBASE-14529 Respond to SIGHUP to reload config Summary: Add a signal handler to reload the config. Test Plan: Send the command and see that configs get reloaded. Differential Revision: https://reviews.facebook.net/D47877 --- .../java/org/apache/hadoop/hbase/conf/ConfigurationManager.java | 1 + .../java/org/apache/hadoop/hbase/regionserver/HRegionServer.java | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/conf/ConfigurationManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/conf/ConfigurationManager.java index 29b3e8b..2f01fbf 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/conf/ConfigurationManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/conf/ConfigurationManager.java @@ -114,6 +114,7 @@ public class ConfigurationManager { * all the observers that are expressed interest to do that. */ public void notifyAllObservers(Configuration conf) { + LOG.debug("Starting to notify all observers that config changed."); synchronized (configurationObservers) { for (ConfigurationObserver observer : configurationObservers) { try { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java index 59d13fa..0de28e6 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java @@ -186,6 +186,8 @@ import com.google.protobuf.RpcCallback; import com.google.protobuf.RpcController; import com.google.protobuf.Service; import com.google.protobuf.ServiceException; +import sun.misc.Signal; +import sun.misc.SignalHandler; /** * HRegionServer makes a set of HRegions available to clients. It checks in with @@ -603,6 +605,13 @@ public class HRegionServer extends HasThread implements putUpWebUI(); this.walRoller = new LogRoller(this, this); this.choreService = new ChoreService(getServerName().toString()); + + Signal.handle(new Signal("HUP"), new SignalHandler() { + public void handle(Signal signal) { + getConfiguration().reloadConfiguration(); + configurationManager.notifyAllObservers(getConfiguration()); + } + }); } protected TableDescriptors getFsTableDescriptors() throws IOException { -- 2.5.3