You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by st...@apache.org on 2007/12/14 18:12:09 UTC
svn commit: r604233 - in /lucene/hadoop/trunk/src/contrib/hbase: CHANGES.txt
bin/hbase-daemon.sh src/java/org/apache/hadoop/hbase/HRegionServer.java
Author: stack
Date: Fri Dec 14 09:12:09 2007
New Revision: 604233
URL: http://svn.apache.org/viewvc?rev=604233&view=rev
Log:
HADOOP-2286 Add being able to shutdown regionservers
Modified:
lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt
lucene/hadoop/trunk/src/contrib/hbase/bin/hbase-daemon.sh
lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegionServer.java
Modified: lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt?rev=604233&r1=604232&r2=604233&view=diff
==============================================================================
--- lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt (original)
+++ lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt Fri Dec 14 09:12:09 2007
@@ -123,7 +123,9 @@
(Edward Yoon via Stack)
HADOOP-2351 If select command returns no result, it doesn't need to show the
header information (Edward Yoon via Stack)
+ HADOOP-2285 Add being able to shutdown regionservers (Dennis Kubes via Stack)
+
Release 0.15.1
Branch 0.15
Modified: lucene/hadoop/trunk/src/contrib/hbase/bin/hbase-daemon.sh
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/bin/hbase-daemon.sh?rev=604233&r1=604232&r2=604233&view=diff
==============================================================================
--- lucene/hadoop/trunk/src/contrib/hbase/bin/hbase-daemon.sh (original)
+++ lucene/hadoop/trunk/src/contrib/hbase/bin/hbase-daemon.sh Fri Dec 14 09:12:09 2007
@@ -128,10 +128,14 @@
if [ -f $pid ]; then
if kill -0 `cat $pid` > /dev/null 2>&1; then
echo -n stopping $command
- nohup nice -n $HADOOP_NICENESS "$HBASE_HOME"/bin/hbase \
- --hadoop "${HADOOP_HOME}" \
- --config "${HADOOP_CONF_DIR}" --hbaseconfig "${HBASE_CONF_DIR}" \
- $command $startStop "$@" > "$log" 2>&1 < /dev/null &
+ if [ "$command" = "regionserver" ]; then
+ kill `cat $pid` > /dev/null 2>&1
+ else
+ nohup nice -n $HADOOP_NICENESS "$HBASE_HOME"/bin/hbase \
+ --hadoop "${HADOOP_HOME}" \
+ --config "${HADOOP_CONF_DIR}" --hbaseconfig "${HBASE_CONF_DIR}" \
+ $command $startStop "$@" > "$log" 2>&1 < /dev/null &
+ fi
while kill -0 `cat $pid` > /dev/null 2>&1; do
echo -n "."
sleep 1;
Modified: lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegionServer.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegionServer.java?rev=604233&r1=604232&r2=604233&view=diff
==============================================================================
--- lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegionServer.java (original)
+++ lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegionServer.java Fri Dec 14 09:12:09 2007
@@ -132,6 +132,31 @@
/** region server process name */
public static final String REGIONSERVER = "regionserver";
+
+ /**
+ * Thread to shutdown the region server in an orderly manner. This thread
+ * is registered as a shutdown hook in the HRegionServer constructor and is
+ * only called when the HRegionServer receives a kill signal.
+ */
+ class ShutdownThread
+ extends Thread {
+
+ private final HRegionServer instance;
+
+ public ShutdownThread(HRegionServer instance) {
+ this.instance = instance;
+ }
+
+ public synchronized void start() {
+ LOG.info("Starting shutdown thread.");
+
+ // tell the region server to stop and wait for it to complete
+ instance.stop();
+ instance.join();
+ LOG.info("Shutdown thread complete");
+ }
+
+ }
/** Queue entry passed to flusher, compactor and splitter threads */
class QueueEntry implements Delayed {
@@ -646,6 +671,10 @@
this.leases = new Leases(
conf.getInt("hbase.regionserver.lease.period", 3 * 60 * 1000),
this.threadWakeFrequency);
+
+ // Register shutdown hook for HRegionServer, runs an orderly shutdown
+ // when a kill signal is recieved
+ Runtime.getRuntime().addShutdownHook(new ShutdownThread(this));
}
/**
@@ -1736,8 +1765,9 @@
}
if (cmd.equals("stop")) {
- printUsageAndExit("There is no regionserver stop mechanism. To stop " +
- "regionservers, shutdown the hbase master");
+ printUsageAndExit("To shutdown the regionserver run " +
+ "bin/hbase-daemon.sh stop regionserver or send a kill signal to" +
+ "the regionserver pid");
}
// Print out usage if we get to here.