Author: stack
Date: Thu Jan 17 10:19:31 2008
New Revision: 612913

URL: http://svn.apache.org/viewvc?rev=612913&view=rev
Log:
HADOOP-2545 hbase rest server should be started with hbase-daemon.sh

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/rest/Dispatcher.java
    
lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/thrift/ThriftServer.java
    
lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/thrift/package.html

Modified: lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt?rev=612913&r1=612912&r2=612913&view=diff
==============================================================================
--- lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt (original)
+++ lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt Thu Jan 17 10:19:31 2008
@@ -192,6 +192,7 @@
    HADOOP-2557 Shell count function (Edward Yoon via Stack)
    HADOOP-2589 Change an classes/package name from Shell to hql
                (Edward Yoon via Stack)
+   HADOOP-2545 hbase rest server should be started with hbase-daemon.sh
 
 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=612913&r1=612912&r2=612913&view=diff
==============================================================================
--- lucene/hadoop/trunk/src/contrib/hbase/bin/hbase-daemon.sh (original)
+++ lucene/hadoop/trunk/src/contrib/hbase/bin/hbase-daemon.sh Thu Jan 17 
10:19:31 2008
@@ -128,13 +128,13 @@
     if [ -f $pid ]; then
       if kill -0 `cat $pid` > /dev/null 2>&1; then
         echo -n stopping $command
-        if [ "$command" = "regionserver" ]; then
-          kill `cat $pid` > /dev/null 2>&1
-        else
+        if [ "$command" = "master" ]; then
           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 &
+        else
+          kill `cat $pid` > /dev/null 2>&1
         fi
         while kill -0 `cat $pid` > /dev/null 2>&1; do
           echo -n "."

Modified: 
lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/rest/Dispatcher.java
URL: 
http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/rest/Dispatcher.java?rev=612913&r1=612912&r2=612913&view=diff
==============================================================================
--- 
lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/rest/Dispatcher.java
 (original)
+++ 
lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/rest/Dispatcher.java
 Thu Jan 17 10:19:31 2008
@@ -19,23 +19,16 @@
  */
 package org.apache.hadoop.hbase.rest;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
 import java.io.IOException;
+
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import org.mortbay.http.SocketListener;
-
-import java.io.File;
-import java.io.FileNotFoundException;
 
-import java.net.URL;
-import org.mortbay.http.HttpContext;
-
-import org.apache.hadoop.hbase.*;
+import org.apache.hadoop.hbase.HBaseAdmin;
+import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.util.InfoServer;
+import org.mortbay.http.SocketListener;
 
 /**
  * Servlet implementation class for hbase REST interface.
@@ -166,53 +159,80 @@
     return request.getRequestURI().substring(context_len).split("/");
   }
 
+  //
+  // Main program and support routines
+  //
+  
+  private static void printUsageAndExit() {
+    printUsageAndExit(null);
+  }
+  
+  private static void printUsageAndExit(final String message) {
+    if (message != null) {
+      System.err.println(message);
+    }
+    System.out.println("Usage: java org.apache.hadoop.hbase.rest.Dispatcher " +
+      "--help | [--port=PORT] [--bind=ADDR] start");
+    System.out.println("Arguments:");
+    System.out.println(" start Start REST server");
+    System.out.println(" stop  Stop REST server");
+    System.out.println("Options:");
+    System.out.println(" port  Port to listen on. Default: 60050.");
+    System.out.println(" bind  Address to bind on. Default: 0.0.0.0.");
+    System.out.println(" help  Print this message and exit.");
+    System.exit(0);
+  }
 
   /*
    * Start up the REST servlet in standalone mode.
+   * @param args
    */
-  public static void main(String[] args) throws Exception{
+  protected static void doMain(final String [] args) throws Exception {
+    if (args.length < 1) {
+      printUsageAndExit();
+    }
+
     int port = 60050;
     String bindAddress = "0.0.0.0";
-    
-    // grab the port and bind addresses from the command line if supplied
-    for(int i = 0; i < args.length; i++){
-      if(args[i].equals("--port")){
-        port = Integer.parseInt(args[++i]);
-      } else if(args[i].equals("--bind")){
-        bindAddress = args[++i];
-      } else if(args[i].equals("--help")){
-        printUsage();
-        return;
-      } else {
-        System.out.println("Unrecognized switch " + args[i]);
-        printUsage();
-        return;
+
+    // Process command-line args. TODO: Better cmd-line processing
+    // (but hopefully something not as painful as cli options).
+    final String addressArgKey = "--bind=";
+    final String portArgKey = "--port=";
+    for (String cmd: args) {
+      if (cmd.startsWith(addressArgKey)) {
+        bindAddress = cmd.substring(addressArgKey.length());
+        continue;
+      } else if (cmd.startsWith(portArgKey)) {
+        port = Integer.parseInt(cmd.substring(portArgKey.length()));
+        continue;
+      } else if (cmd.equals("--help") || cmd.equals("-h")) {
+        printUsageAndExit();
+      } else if (cmd.equals("start")) {
+        org.mortbay.jetty.Server webServer = new org.mortbay.jetty.Server();
+        SocketListener listener = new SocketListener();
+        listener.setPort(port);
+        listener.setHost(bindAddress);
+        webServer.addListener(listener);
+        webServer.addWebApplication("/api", InfoServer.getWebAppDir("rest"));
+        webServer.start();
+        break;
+      } else if (cmd.equals("stop")) {
+        printUsageAndExit("To shutdown the REST server run " +
+            "bin/hbase-daemon.sh stop rest or send a kill signal to " +
+            "the REST server pid");
       }
+      
+      // Print out usage if we get to here.
+      printUsageAndExit();
     }
-    
-    org.mortbay.jetty.Server webServer = new org.mortbay.jetty.Server();
-
-    SocketListener listener = new SocketListener();
-    listener.setPort(port);
-    listener.setHost(bindAddress);
-    webServer.addListener(listener);
-  
-    webServer.addWebApplication("/api", InfoServer.getWebAppDir("rest"));
-    
-    webServer.start();
-  }  
+  }
   
-  /*
-   * Print out the usage of this class from the command line.
-   */ 
-  private static void printUsage(){
-    System.out.println("Start up the HBase REST servlet.");
-    System.out.println("Options:");
-    System.out.println("--port [port]");
-    System.out.println("\tPort to listen on. Defaults to 60050.");
-    System.out.println("--bind [addr]");
-    System.out.println("\tAddress to bind on. Defaults to 0.0.0.0.");
-    System.out.println("--help");
-    System.out.println("\tPrint this message and exit.");
+  /**
+   * @param args
+   * @throws Exception 
+   */
+  public static void main(String [] args) throws Exception {
+    doMain(args);
   }
-}
+}
\ No newline at end of file

Modified: 
lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/thrift/ThriftServer.java
URL: 
http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/thrift/ThriftServer.java?rev=612913&r1=612912&r2=612913&view=diff
==============================================================================
--- 
lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/thrift/ThriftServer.java
 (original)
+++ 
lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/thrift/ThriftServer.java
 Thu Jan 17 10:19:31 2008
@@ -28,12 +28,6 @@
 import java.util.TreeMap;
 import java.util.Map.Entry;
 
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.GnuParser;
-import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hbase.HBaseAdmin;
@@ -45,8 +39,6 @@
 import org.apache.hadoop.hbase.HTable;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.MasterNotRunningException;
-import org.apache.hadoop.io.Text;
-
 import org.apache.hadoop.hbase.thrift.generated.AlreadyExists;
 import org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor;
 import org.apache.hadoop.hbase.thrift.generated.Hbase;
@@ -56,6 +48,7 @@
 import org.apache.hadoop.hbase.thrift.generated.NotFound;
 import org.apache.hadoop.hbase.thrift.generated.RegionDescriptor;
 import org.apache.hadoop.hbase.thrift.generated.ScanEntry;
+import org.apache.hadoop.io.Text;
 
 import com.facebook.thrift.TException;
 import com.facebook.thrift.protocol.TBinaryProtocol;
@@ -571,54 +564,84 @@
     }
   }
   
-  public static void main(String[] args) {
-    Log LOG = LogFactory.getLog("ThriftServer");
-    
-    // Parse command-line
-    //
-    Options options = new Options();
-    options.addOption("h", "help", false, "print this message");
-    options.addOption("p", "port", true,
-        "server listening port (default: 9090)");
-    CommandLineParser parser = new GnuParser();
-    CommandLine line;
-    
-    try {
-      line = parser.parse(options, args);
-    } catch (ParseException e) {
-      System.out.println("ERROR: " + e.getMessage());
-      HelpFormatter formatter = new HelpFormatter();
-      formatter.printHelp("ThriftServer [options]", options);
-      return;
-    }
-    
-    if (line.hasOption("h")) {
-      HelpFormatter formatter = new HelpFormatter();
-      formatter.printHelp("ThriftServer [options]", options);
-      return;
+  //
+  // Main program and support routines
+  //
+  
+  private static void printUsageAndExit() {
+    printUsageAndExit(null);
+  }
+  
+  private static void printUsageAndExit(final String message) {
+    if (message != null) {
+      System.err.println(message);
+    }
+    System.out.println("Usage: java 
org.apache.hadoop.hbase.thrift.ThriftServer " +
+      "--help | [--port=PORT] start");
+    System.out.println("Arguments:");
+    System.out.println(" start Start thrift server");
+    System.out.println(" stop  Stop thrift server");
+    System.out.println("Options:");
+    System.out.println(" port  Port to listen on. Default: 9090");
+    // System.out.println(" bind  Address to bind on. Default: 0.0.0.0.");
+    System.out.println(" help  Print this message and exit");
+    System.exit(0);
+  }
+
+  /*
+   * Start up the REST servlet in standalone mode.
+   * @param args
+   */
+  protected static void doMain(final String [] args) throws Exception {
+    if (args.length < 1) {
+      printUsageAndExit();
     }
-    
-    int port = Integer.parseInt(line.getOptionValue("p", "9090"));
-    
-    // Launch Thrift Server
-    //
-    try {
-      LOG
-          .info("starting HBase Thrift server on port "
-              + Integer.toString(port));
-      HBaseHandler handler = new HBaseHandler();
-      Hbase.Processor processor = new Hbase.Processor(handler);
-      TServerTransport serverTransport = new TServerSocket(port);
-      TProtocolFactory protFactory = new TBinaryProtocol.Factory(true, true);
-      TServer server = new TThreadPoolServer(processor, serverTransport,
+
+    int port = 9090;
+    // String bindAddress = "0.0.0.0";
+
+    // Process command-line args. TODO: Better cmd-line processing
+    // (but hopefully something not as painful as cli options).
+//    final String addressArgKey = "--bind=";
+    final String portArgKey = "--port=";
+    for (String cmd: args) {
+//      if (cmd.startsWith(addressArgKey)) {
+//        bindAddress = cmd.substring(addressArgKey.length());
+//        continue;
+//      } else 
+      if (cmd.startsWith(portArgKey)) {
+        port = Integer.parseInt(cmd.substring(portArgKey.length()));
+        continue;
+      } else if (cmd.equals("--help") || cmd.equals("-h")) {
+        printUsageAndExit();
+      } else if (cmd.equals("start")) {
+        Log LOG = LogFactory.getLog("ThriftServer");
+        LOG.info("starting HBase Thrift server on port " +
+          Integer.toString(port));
+        HBaseHandler handler = new HBaseHandler();
+        Hbase.Processor processor = new Hbase.Processor(handler);
+        TServerTransport serverTransport = new TServerSocket(port);
+        TProtocolFactory protFactory = new TBinaryProtocol.Factory(true, true);
+        TServer server = new TThreadPoolServer(processor, serverTransport,
           protFactory);
+        server.serve();
+        break;
+      } else if (cmd.equals("stop")) {
+        printUsageAndExit("To shutdown the thrift server run " +
+            "bin/hbase-daemon.sh stop thrift or send a kill signal to " +
+            "the thrift server pid");
+      }
       
-      LOG.info("Starting the server...");
-      server.serve();
-      
-    } catch (Exception x) {
-      x.printStackTrace();
+      // Print out usage if we get to here.
+      printUsageAndExit();
     }
-    LOG.info("done.");
   }
-}
+  
+  /**
+   * @param args
+   * @throws Exception 
+   */
+  public static void main(String [] args) throws Exception {
+    doMain(args);
+  }
+}
\ No newline at end of file

Modified: 
lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/thrift/package.html
URL: 
http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/thrift/package.html?rev=612913&r1=612912&r2=612913&view=diff
==============================================================================
--- 
lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/thrift/package.html
 (original)
+++ 
lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/thrift/package.html
 Thu Jan 17 10:19:31 2008
@@ -49,8 +49,7 @@
 
 <p>The ThriftServer is run like:
 <pre>
-
-  ./bin/hbase thrift [-h|--help] [-p|--port PORT]
+  ./bin/hbase thrift -h|--help | [--port=PORT] start
 </pre>
 The default port is 9090.
 </p>


Reply via email to