incubator-blur-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From amccu...@apache.org
Subject git commit: Tried to make commands in shell more consistent in docs and added an auto generate docs for html site.
Date Tue, 20 Aug 2013 18:40:07 GMT
Updated Branches:
  refs/heads/master c7385fb29 -> f28d000a5


Tried to make commands in shell more consistent in docs and added an auto generate docs for html site.


Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/f28d000a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/f28d000a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/f28d000a

Branch: refs/heads/master
Commit: f28d000a5c3d27ca0e1bd360d944009a06b1485a
Parents: c7385fb
Author: Aaron McCurry <amccurry@gmail.com>
Authored: Tue Aug 20 14:39:24 2013 -0400
Committer: Aaron McCurry <amccurry@gmail.com>
Committed: Tue Aug 20 14:39:24 2013 -0400

----------------------------------------------------------------------
 blur-shell/generate_docs.sh                     |   1 +
 .../blur/shell/AddColumnDefinitionCommand.java  |  20 +-
 .../java/org/apache/blur/shell/Command.java     |  10 +-
 .../blur/shell/ControllersEchoCommand.java      |  20 +-
 .../apache/blur/shell/CreateTableCommand.java   |  22 +-
 .../org/apache/blur/shell/DeleteRowCommand.java |  14 +-
 .../apache/blur/shell/DescribeTableCommand.java |  14 +-
 .../apache/blur/shell/DisableTableCommand.java  |  52 +++
 .../blur/shell/EnableDisableTableCommand.java   |  49 ---
 .../apache/blur/shell/EnableTableCommand.java   |  59 +++
 .../java/org/apache/blur/shell/GenerateDoc.java |  72 ++++
 .../org/apache/blur/shell/GetRowCommand.java    |  14 +-
 .../blur/shell/IndexAccessLogCommand.java       |  14 +-
 .../apache/blur/shell/ListTablesCommand.java    |  14 +-
 .../apache/blur/shell/LoadTestDataCommand.java  |  14 +-
 .../main/java/org/apache/blur/shell/Main.java   | 189 ++++++---
 .../org/apache/blur/shell/MutateRowCommand.java |  14 +-
 .../org/apache/blur/shell/ParseCommand.java     |  14 +-
 .../org/apache/blur/shell/QueryCommand.java     |  14 +-
 .../apache/blur/shell/RemoveTableCommand.java   |  14 +-
 .../apache/blur/shell/SchemaTableCommand.java   |  14 +-
 .../org/apache/blur/shell/SelectorCommand.java  |  14 +-
 .../blur/shell/ShardClusterListCommand.java     |  14 +-
 .../blur/shell/ShardServerLayoutCommand.java    |  14 +-
 .../apache/blur/shell/ShardsEchoCommand.java    |  20 +-
 .../apache/blur/shell/TableStatsCommand.java    |  14 +-
 .../java/org/apache/blur/shell/TopCommand.java  |  14 +-
 .../apache/blur/shell/TruncateTableCommand.java |  14 +-
 .../blur/shell/WaitInSafemodeCommand.java       |  14 +-
 docs/using-blur.base.html                       | 148 +++++++
 docs/using-blur.html                            | 386 +++++++++++++------
 31 files changed, 1011 insertions(+), 289 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/generate_docs.sh
----------------------------------------------------------------------
diff --git a/blur-shell/generate_docs.sh b/blur-shell/generate_docs.sh
new file mode 100755
index 0000000..7958eff
--- /dev/null
+++ b/blur-shell/generate_docs.sh
@@ -0,0 +1 @@
+mvn exec:java -Dexec.mainClass="org.apache.blur.shell.GenerateDoc" -Dexec.args="../docs/using-blur.base.html ../docs/using-blur.html"

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/AddColumnDefinitionCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/AddColumnDefinitionCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/AddColumnDefinitionCommand.java
index 98b5a2c..d2d1c4f 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/AddColumnDefinitionCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/AddColumnDefinitionCommand.java
@@ -66,19 +66,23 @@ public class AddColumnDefinitionCommand extends Command implements TableFirstArg
   }
 
   @Override
-  public String help() {
-    return "define column, args: <table> <family> <column name> <type> [-s <sub column name>] [-F] [-p name value]*";
+  public String description() {
+    return "Defines a new column in the named table.";
   }
 
+  @Override
+  public String usage() {
+    return "<table name> <family> <column name> <type> [-s <sub column name>] [-F] [-p name value]*";
+  }
+
+  @Override
+  public String name() {
+    return "definecolumn";
+  }
+  
   @SuppressWarnings("static-access")
   private static CommandLine parse(String[] otherArgs, Writer out) {
     Options options = new Options();
-    // options.addOption(OptionBuilder.withArgName("family").hasArg().isRequired(true)
-    // .withDescription("* The family of the new column definition.").create("f"));
-    // options.addOption(OptionBuilder.withArgName("family").hasArg().isRequired(true)
-    // .withDescription("* The family of the new column definition.").create("f"));
-    // options.addOption(OptionBuilder.withArgName("column name").hasArg().isRequired(true)
-    // .withDescription("* The column name of the new column definition.").create("c"));
     options.addOption(OptionBuilder.withArgName("sub column name").hasArg()
         .withDescription("The sub column name of the new column definition.").create("s"));
     options.addOption(OptionBuilder.withDescription(

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/Command.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/Command.java b/blur-shell/src/main/java/org/apache/blur/shell/Command.java
index 11fe713..70d3419 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/Command.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/Command.java
@@ -39,7 +39,15 @@ public abstract class Command {
   abstract public void doit(PrintWriter out, Blur.Iface client, String[] args) throws CommandException, TException,
       BlurException;
 
-  abstract public String help();
+  public final String help() {
+    return description() + " " + "Usage: " + name() + " " + usage();
+  }
+
+  abstract public String description();
+
+  abstract public String usage();
+
+  abstract public String name();
 
   public ConsoleReader getConsoleReader() {
     return consoleReader;

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/ControllersEchoCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/ControllersEchoCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/ControllersEchoCommand.java
index fd55445..e5f97af 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/ControllersEchoCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/ControllersEchoCommand.java
@@ -57,11 +57,6 @@ public class ControllersEchoCommand extends Command {
     return false;
   }
 
-  @Override
-  public String help() {
-    return "list controllers";
-  }
-
   public static String getNodeName() {
     try {
       return InetAddress.getLocalHost().getHostName();
@@ -76,4 +71,19 @@ public class ControllersEchoCommand extends Command {
     }
   }
 
+  @Override
+  public String description() {
+    return "List controllers.";
+  }
+
+  @Override
+  public String usage() {
+    return "";
+  }
+
+  @Override
+  public String name() {
+    return "controllers";
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/CreateTableCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/CreateTableCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/CreateTableCommand.java
index 07228ad..381b485 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/CreateTableCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/CreateTableCommand.java
@@ -27,17 +27,17 @@ import org.apache.blur.thrift.generated.TableDescriptor;
 
 public class CreateTableCommand extends Command {
   @Override
-  public void doit(PrintWriter out, Blur.Iface client, String[] args)
-      throws CommandException, TException, BlurException {
+  public void doit(PrintWriter out, Blur.Iface client, String[] args) throws CommandException, TException,
+      BlurException {
     if (args.length != 4) {
       throw new CommandException("Invalid args: " + help());
     }
-    
+
     String tablename = args[1];
     String tableuri = args[2];
     int shardCount = Integer.parseInt(args[3]);
 
-    TableDescriptor td = new TableDescriptor(); 
+    TableDescriptor td = new TableDescriptor();
     td.setTableUri(tableuri);
     td.setCluster(Main.getCluster(client));
     td.setName(tablename);
@@ -52,7 +52,17 @@ public class CreateTableCommand extends Command {
   }
 
   @Override
-  public String help() {
-    return "create the named table, args; tablename tableuri shardcount";
+  public String description() {
+    return "Create the named table.";
+  }
+
+  @Override
+  public String usage() {
+    return "<tablename> <tableuri> <shardcount>";
+  }
+
+  @Override
+  public String name() {
+    return "create";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/DeleteRowCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/DeleteRowCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/DeleteRowCommand.java
index b932a41..94893d0 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/DeleteRowCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/DeleteRowCommand.java
@@ -44,8 +44,18 @@ public class DeleteRowCommand extends Command implements TableFirstArgCommand {
   }
 
   @Override
-  public String help() {
-    return "delete the specified row, args; tablename rowid";
+  public String description() {
+    return "Delete the specified row.";
+  }
+
+  @Override
+  public String usage() {
+    return "<tablename> <rowid>";
+  }
+
+  @Override
+  public String name() {
+    return "delete";
   }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/DescribeTableCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/DescribeTableCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/DescribeTableCommand.java
index 84b5be2..cd44429 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/DescribeTableCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/DescribeTableCommand.java
@@ -52,7 +52,17 @@ public class DescribeTableCommand extends Command implements TableFirstArgComman
   }
 
   @Override
-  public String help() {
-    return "describe the named table, args; tablename";
+  public String description() {
+    return "Describe the named table.";
+  }
+
+  @Override
+  public String usage() {
+    return "<tablename>";
+  }
+
+  @Override
+  public String name() {
+    return "describe";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/DisableTableCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/DisableTableCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/DisableTableCommand.java
new file mode 100644
index 0000000..d07954b
--- /dev/null
+++ b/blur-shell/src/main/java/org/apache/blur/shell/DisableTableCommand.java
@@ -0,0 +1,52 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.blur.shell;
+
+import java.io.PrintWriter;
+
+import org.apache.blur.thirdparty.thrift_0_9_0.TException;
+import org.apache.blur.thrift.generated.Blur;
+import org.apache.blur.thrift.generated.BlurException;
+
+public class DisableTableCommand extends Command implements TableFirstArgCommand {
+  @Override
+  public void doit(PrintWriter out, Blur.Iface client, String[] args) throws CommandException, TException,
+      BlurException {
+    if (args.length != 2) {
+      throw new CommandException("Invalid args: " + help());
+    }
+    String tablename = args[1];
+    client.disableTable(tablename);
+  }
+
+  @Override
+  public String description() {
+    return "Disable the named table.";
+  }
+
+  @Override
+  public String usage() {
+    return "<tablename>";
+  }
+
+  @Override
+  public String name() {
+    return "disable";
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/EnableDisableTableCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/EnableDisableTableCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/EnableDisableTableCommand.java
deleted file mode 100644
index 10564cd..0000000
--- a/blur-shell/src/main/java/org/apache/blur/shell/EnableDisableTableCommand.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.blur.shell;
-
-import java.io.PrintWriter;
-
-import org.apache.blur.thirdparty.thrift_0_9_0.TException;
-import org.apache.blur.thrift.generated.Blur;
-import org.apache.blur.thrift.generated.BlurException;
-
-public class EnableDisableTableCommand extends Command implements TableFirstArgCommand {
-  @Override
-  public void doit(PrintWriter out, Blur.Iface client, String[] args)
-      throws CommandException, TException, BlurException {
-    if (args.length != 2) {
-      throw new CommandException("Invalid args: " + help());
-    }
-    String tablename = args[1];
-
-    if (args[0].equalsIgnoreCase("enable")) {
-      client.enableTable(tablename);
-    } else if (args[0].equalsIgnoreCase("disable")) {
-      client.disableTable(tablename);
-    } else {
-      throw new CommandException("unknown command" + args[0]);
-    }
-  }
-
-  @Override
-  public String help() {
-    return "change status of the named table, args; tablename";
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/EnableTableCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/EnableTableCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/EnableTableCommand.java
new file mode 100644
index 0000000..cec829a
--- /dev/null
+++ b/blur-shell/src/main/java/org/apache/blur/shell/EnableTableCommand.java
@@ -0,0 +1,59 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.blur.shell;
+
+import java.io.PrintWriter;
+
+import org.apache.blur.thirdparty.thrift_0_9_0.TException;
+import org.apache.blur.thrift.generated.Blur;
+import org.apache.blur.thrift.generated.BlurException;
+
+public class EnableTableCommand extends Command implements TableFirstArgCommand {
+  @Override
+  public void doit(PrintWriter out, Blur.Iface client, String[] args)
+      throws CommandException, TException, BlurException {
+    if (args.length != 2) {
+      throw new CommandException("Invalid args: " + help());
+    }
+    String tablename = args[1];
+
+    if (args[0].equalsIgnoreCase("enable")) {
+      client.enableTable(tablename);
+    } else if (args[0].equalsIgnoreCase("disable")) {
+      client.disableTable(tablename);
+    } else {
+      throw new CommandException("unknown command" + args[0]);
+    }
+  }
+
+  @Override
+  public String description() {
+    return "Enable the named table.";
+  }
+
+  @Override
+  public String usage() {
+    return "<tablename>";
+  }
+
+  @Override
+  public String name() {
+    return "enable";
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/GenerateDoc.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/GenerateDoc.java b/blur-shell/src/main/java/org/apache/blur/shell/GenerateDoc.java
new file mode 100644
index 0000000..de6d326
--- /dev/null
+++ b/blur-shell/src/main/java/org/apache/blur/shell/GenerateDoc.java
@@ -0,0 +1,72 @@
+package org.apache.blur.shell;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.util.Map;
+
+public class GenerateDoc {
+
+  public static void main(String[] args) throws IOException {
+    Main.setupCommands();
+    Map<String, Command> commands = Main.commands;
+    ByteArrayOutputStream outputStream1 = new ByteArrayOutputStream();
+    ByteArrayOutputStream outputStream2 = new ByteArrayOutputStream();
+    PrintWriter menu = new PrintWriter(outputStream1);
+    PrintWriter body = new PrintWriter(outputStream2);
+    printCommands("Table Commands", Main.tableCommands, commands, menu, body);
+    printCommands("Data Commands", Main.dataCommands, commands, menu, body);
+    printCommands("Cluster Commands", Main.clusterCommands, commands, menu, body);
+    printCommands("Shell Commands", Main.shellCommands, commands, menu, body);
+    menu.close();
+    body.close();
+    String menuReplacementText = new String(outputStream1.toByteArray());
+    String bodyReplacementText = new String(outputStream2.toByteArray());
+
+    File source = new File(args[0]);
+    File output = new File(args[1]);
+
+    PrintWriter writer = new PrintWriter(output);
+
+    BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(source)));
+    String line;
+    while ((line = reader.readLine()) != null) {
+      line = line.trim();
+      if (line.equals("|||Shell-Menu|||")) {
+        writer.println(menuReplacementText);
+      } else if (line.equals("|||Shell-Body|||")) {
+        writer.println(bodyReplacementText);
+      } else {
+        writer.println(line);
+      }
+    }
+    writer.close();
+    reader.close();
+  }
+
+  private static void printCommands(String name, String[] commandNames, Map<String, Command> commands,
+      PrintWriter menu, PrintWriter body) {
+    String cleanedName = name.toLowerCase().replace(" ", "_");
+    menu.println("<li><a href=\"#shell_" + cleanedName + "\">" + name + "</a>");
+    menu.println("<ul class=\"nav\">");
+    body.println("<h3 id=\"shell_" + cleanedName + "\">" + name + "</h3>");
+    for (String commandName : commandNames) {
+      Command command = commands.get(commandName);
+      String description = command.description();
+      String usage = escapeForHtml(command.usage());
+      menu.println("<li><a href=\"#shell_command_" + commandName + "\">&nbsp;&nbsp;" + commandName + "</a></li>");
+      body.println("<h4 id=\"shell_command_" + commandName + "\">" + commandName + "</h4>");
+      body.println("<p>Description: " + description + "<br/>");
+      body.println("<pre><code class=\"bash\">" + commandName + " " + usage + "</code></pre></p>");
+    }
+    menu.println("</ul></li>");
+  }
+
+  private static String escapeForHtml(String text) {
+    return text.replace("<", "&lt;").replace(">", "&gt;");
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/GetRowCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/GetRowCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/GetRowCommand.java
index 26624f4..296b364 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/GetRowCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/GetRowCommand.java
@@ -130,7 +130,17 @@ public class GetRowCommand extends Command implements TableFirstArgCommand {
   }
 
   @Override
-  public String help() {
-    return "display the specified row, args; tablename rowid";
+  public String description() {
+    return "display the specified row";
+  }
+
+  @Override
+  public String usage() {
+    return "<tablename> <rowid>";
+  }
+
+  @Override
+  public String name() {
+    return "get";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/IndexAccessLogCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/IndexAccessLogCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/IndexAccessLogCommand.java
index 858c9f1..1d0f481 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/IndexAccessLogCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/IndexAccessLogCommand.java
@@ -113,7 +113,17 @@ public class IndexAccessLogCommand extends Command {
   }
 
   @Override
-  public String help() {
-    return "index an access log, args; file batchsize tablename regex colnames+";
+  public String description() {
+    return "Index an access log.";
+  }
+
+  @Override
+  public String usage() {
+    return "<file> <batchsize> <tablename> <regex> <colnames>*";
+  }
+
+  @Override
+  public String name() {
+    return "indexaccesslog";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/ListTablesCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/ListTablesCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/ListTablesCommand.java
index e174a19..f35f5dd 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/ListTablesCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/ListTablesCommand.java
@@ -37,7 +37,17 @@ public class ListTablesCommand extends Command {
   }
 
   @Override
-  public String help() {
-    return "list tables";
+  public String description() {
+    return "List tables.";
+  }
+
+  @Override
+  public String usage() {
+    return "";
+  }
+
+  @Override
+  public String name() {
+    return "list";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/LoadTestDataCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/LoadTestDataCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/LoadTestDataCommand.java
index 9589720..1a4f094 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/LoadTestDataCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/LoadTestDataCommand.java
@@ -54,7 +54,17 @@ public class LoadTestDataCommand extends Command implements TableFirstArgCommand
   }
 
   @Override
-  public String help() {
-    return "load test data, args; tablename wal(boolean) rows(int) recordsPerRow(int) families(int) columnsPerRecord(int) wordsPerColumn(int) batchSize(int)";
+  public String description() {
+    return "Load test data.";
+  }
+
+  @Override
+  public String usage() {
+    return "<tablename> <write ahead log (true/false) <rows> <recordsPerRow> <families> <columnsPerRecord> <wordsPerColumn> <batchSize>";
+  }
+
+  @Override
+  public String name() {
+    return "loadtestdata";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/Main.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/Main.java b/blur-shell/src/main/java/org/apache/blur/shell/Main.java
index 7673f64..eb23a06 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/Main.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/Main.java
@@ -62,7 +62,7 @@ public class Main {
   /** default selector */
   static Selector selector = new Selector();
 
-  private static Map<String, Command> commands;
+  static Map<String, Command> commands;
   static String cluster;
 
   static String getCluster(Iface client) throws BlurException, TException, CommandException {
@@ -157,8 +157,18 @@ public class Main {
     }
 
     @Override
-    public String help() {
-      return "set the cluster in use, args; clustername";
+    public String description() {
+      return "Set the cluster in use.";
+    }
+
+    @Override
+    public String usage() {
+      return "<clustername>";
+    }
+
+    @Override
+    public String name() {
+      return "cluster";
     }
 
   }
@@ -183,8 +193,18 @@ public class Main {
     }
 
     @Override
-    public String help() {
-      return "resets the terminal window";
+    public String description() {
+      return "Resets the terminal window.";
+    }
+
+    @Override
+    public String usage() {
+      return "";
+    }
+
+    @Override
+    public String name() {
+      return "reset";
     }
 
   }
@@ -203,8 +223,18 @@ public class Main {
     }
 
     @Override
-    public String help() {
-      return "toggle debugging on/off";
+    public String description() {
+      return "Toggle debugging on/off.";
+    }
+
+    @Override
+    public String usage() {
+      return "";
+    }
+
+    @Override
+    public String name() {
+      return "debug";
     }
 
   }
@@ -223,8 +253,18 @@ public class Main {
     }
 
     @Override
-    public String help() {
-      return "toggle timing of commands on/off";
+    public String description() {
+      return "Toggle timing of commands on/off.";
+    }
+
+    @Override
+    public String usage() {
+      return "";
+    }
+
+    @Override
+    public String name() {
+      return "timed";
     }
 
   }
@@ -243,12 +283,28 @@ public class Main {
     }
 
     @Override
-    public String help() {
-      return "toggle highlight of query output on/off";
+    public String description() {
+      return "Toggle highlight of query output on/off.";
+    }
+
+    @Override
+    public String usage() {
+      return "";
+    }
+
+    @Override
+    public String name() {
+      return "highlight";
     }
 
   }
 
+  public static String[] tableCommands = { "create", "enable", "disable", "remove", "truncate", "describe", "list",
+      "schema", "stats", "layout", "parse", "definecolumn" };
+  public static String[] dataCommands = { "query", "get", "mutate", "delete", "highlight", "selector" };
+  public static String[] clusterCommands = { "controllers", "shards", "clusterlist", "cluster", "safemodewait", "top" };
+  public static String[] shellCommands = { "help", "debug", "timed", "quit", "reset" };
+
   private static class HelpCommand extends Command {
     @Override
     public void doit(PrintWriter out, Blur.Iface client, String[] args) throws CommandException, TException,
@@ -259,29 +315,26 @@ public class Main {
 
       int bufferLength = getMaxCommandLength(cmds.keySet()) + 2;
       out.println(" - Table commands - ");
-      String[] tableCommands = { "create", "enable", "disable", "remove", "truncate", "describe", "list", "schema",
-          "stats", "layout", "parse" };
+
       printCommandAndHelp(out, cmds, tableCommands, bufferLength);
 
       out.println();
       out.println(" - Data commands - ");
-      String[] dataCommands = { "query", "get", "mutate", "delete", "highlight", "selector" };
+
       printCommandAndHelp(out, cmds, dataCommands, bufferLength);
 
       out.println();
       out.println(" - Cluster commands - ");
-      String[] clusterCommands = { "controllers", "shards", "clusterlist", "cluster", "safemodewait", "top" };
       printCommandAndHelp(out, cmds, clusterCommands, bufferLength);
 
       out.println();
       out.println(" - Shell commands - ");
-      String[] shellCommands = { "help", "debug", "timed", "quit", "reset" };
+      
       printCommandAndHelp(out, cmds, shellCommands, bufferLength);
 
       if (!cmds.isEmpty()) {
         out.println();
         out.println(" - Other operations - ");
-
         for (Entry<String, Command> e : cmds.entrySet()) {
           out.println("  " + buffer(e.getKey(), bufferLength) + " - " + e.getValue().help());
         }
@@ -319,8 +372,18 @@ public class Main {
     }
 
     @Override
-    public String help() {
-      return "display help";
+    public String description() {
+      return "Display help.";
+    }
+
+    @Override
+    public String usage() {
+      return "";
+    }
+
+    @Override
+    public String name() {
+      return "help";
     }
   }
 
@@ -339,8 +402,18 @@ public class Main {
     }
 
     @Override
-    public String help() {
-      return "exit the shell";
+    public String description() {
+      return "Exit the shell.";
+    }
+
+    @Override
+    public String usage() {
+      return "";
+    }
+
+    @Override
+    public String name() {
+      return "quit";
     }
   }
 
@@ -348,39 +421,7 @@ public class Main {
 
     args = removeLeadingShellFromScript(args);
 
-    Builder<String, Command> builder = new ImmutableMap.Builder<String, Command>();
-    builder.put("help", new HelpCommand());
-    builder.put("debug", new DebugCommand());
-    builder.put("timed", new TimedCommand());
-    builder.put("highlight", new HighlightCommand());
-    builder.put("quit", new QuitCommand());
-    builder.put("list", new ListTablesCommand());
-    builder.put("create", new CreateTableCommand());
-    builder.put("enable", new EnableDisableTableCommand());
-    builder.put("disable", new EnableDisableTableCommand());
-    builder.put("remove", new RemoveTableCommand());
-    builder.put("describe", new DescribeTableCommand());
-    builder.put("stats", new TableStatsCommand());
-    builder.put("schema", new SchemaTableCommand());
-    builder.put("query", new QueryCommand());
-    builder.put("get", new GetRowCommand());
-    builder.put("delete", new DeleteRowCommand());
-    builder.put("mutate", new MutateRowCommand());
-    builder.put("indexaccesslog", new IndexAccessLogCommand());
-    builder.put("clusterlist", new ShardClusterListCommand());
-    builder.put("layout", new ShardServerLayoutCommand());
-    builder.put("controllers", new ControllersEchoCommand());
-    builder.put("shards", new ShardsEchoCommand());
-    builder.put("truncate", new TruncateTableCommand());
-    builder.put("cluster", new ClusterCommand());
-    builder.put("safemodewait", new WaitInSafemodeCommand());
-    builder.put("top", new TopCommand());
-    builder.put("parse", new ParseCommand());
-    builder.put("loadtestdata", new LoadTestDataCommand());
-    builder.put("selector", new SelectorCommand());
-    builder.put("definecolumn", new AddColumnDefinitionCommand());
-    builder.put("reset", new ResetCommand());
-    commands = builder.build();
+    setupCommands();
 
     CliShellOptions cliShellOptions = getCliShellOptions(args);
     if (cliShellOptions == null) {
@@ -478,6 +519,46 @@ public class Main {
     }
   }
 
+  public static void setupCommands() {
+    Builder<String, Command> builder = new ImmutableMap.Builder<String, Command>();
+    register(builder, new HelpCommand());
+    register(builder, new DebugCommand());
+    register(builder, new TimedCommand());
+    register(builder, new HighlightCommand());
+    register(builder, new QuitCommand());
+    register(builder, new ListTablesCommand());
+    register(builder, new CreateTableCommand());
+    register(builder, new EnableTableCommand());
+    register(builder, new DisableTableCommand());
+    register(builder, new RemoveTableCommand());
+    register(builder, new DescribeTableCommand());
+    register(builder, new TableStatsCommand());
+    register(builder, new SchemaTableCommand());
+    register(builder, new QueryCommand());
+    register(builder, new GetRowCommand());
+    register(builder, new DeleteRowCommand());
+    register(builder, new MutateRowCommand());
+    register(builder, new IndexAccessLogCommand());
+    register(builder, new ShardClusterListCommand());
+    register(builder, new ShardServerLayoutCommand());
+    register(builder, new ControllersEchoCommand());
+    register(builder, new ShardsEchoCommand());
+    register(builder, new TruncateTableCommand());
+    register(builder, new ClusterCommand());
+    register(builder, new WaitInSafemodeCommand());
+    register(builder, new TopCommand());
+    register(builder, new ParseCommand());
+    register(builder, new LoadTestDataCommand());
+    register(builder, new SelectorCommand());
+    register(builder, new AddColumnDefinitionCommand());
+    register(builder, new ResetCommand());
+    commands = builder.build();
+  }
+
+  private static void register(Builder<String, Command> builder, Command command) {
+    builder.put(command.name(), command);
+  }
+
   private static void setPrompt(Iface client, ConsoleReader reader, String connectionStr, PrintWriter out)
       throws BlurException, TException, CommandException, IOException {
     List<String> shardClusterList;

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/MutateRowCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/MutateRowCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/MutateRowCommand.java
index b03474f..d7e1498 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/MutateRowCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/MutateRowCommand.java
@@ -71,7 +71,17 @@ public class MutateRowCommand extends Command implements TableFirstArgCommand {
   }
 
   @Override
-  public String help() {
-    return "mutate the specified row, args; tablename rowid recordid columnfamily columnname value";
+  public String description() {
+    return "Mutate the specified row.";
+  }
+
+  @Override
+  public String usage() {
+    return "<tablename> <rowid> <recordid> <columnfamily> <columnname> <value>";
+  }
+
+  @Override
+  public String name() {
+    return "mutate";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/ParseCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/ParseCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/ParseCommand.java
index 050933c..5e2bf1f 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/ParseCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/ParseCommand.java
@@ -45,7 +45,17 @@ public class ParseCommand extends Command implements TableFirstArgCommand {
   }
 
   @Override
-  public String help() {
-    return "parse a query and return string representation, args; tablename query";
+  public String description() {
+    return "Parse a query and return string representation.";
+  }
+
+  @Override
+  public String usage() {
+    return "<tablename> <query>";
+  }
+
+  @Override
+  public String name() {
+    return "parse";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/QueryCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/QueryCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/QueryCommand.java
index ecedb4d..cbc8e91 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/QueryCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/QueryCommand.java
@@ -137,7 +137,17 @@ public class QueryCommand extends Command implements TableFirstArgCommand {
   }
 
   @Override
-  public String help() {
-    return "query the named table, args; tablename query";
+  public String description() {
+    return "Query the named table.";
+  }
+
+  @Override
+  public String usage() {
+    return "<tablename> <query>";
+  }
+
+  @Override
+  public String name() {
+    return "query";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/RemoveTableCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/RemoveTableCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/RemoveTableCommand.java
index 888c87a..085333f 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/RemoveTableCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/RemoveTableCommand.java
@@ -37,7 +37,17 @@ public class RemoveTableCommand extends Command implements TableFirstArgCommand
   }
 
   @Override
-  public String help() {
-    return "remove the named table, args; tablename";
+  public String description() {
+    return "Remove the named table.";
+  }
+
+  @Override
+  public String usage() {
+    return "<tablename>";
+  }
+
+  @Override
+  public String name() {
+    return "remove";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/SchemaTableCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/SchemaTableCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/SchemaTableCommand.java
index b33655d..b77b975 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/SchemaTableCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/SchemaTableCommand.java
@@ -74,7 +74,17 @@ public class SchemaTableCommand extends Command implements TableFirstArgCommand
   }
 
   @Override
-  public String help() {
-    return "schema of the named table, args; tablename";
+  public String description() {
+    return "Schema of the named table.";
+  }
+
+  @Override
+  public String usage() {
+    return "<tablename>";
+  }
+
+  @Override
+  public String name() {
+    return "schema";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/SelectorCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/SelectorCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/SelectorCommand.java
index adbb539..f59f7ca 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/SelectorCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/SelectorCommand.java
@@ -96,7 +96,17 @@ public class SelectorCommand extends Command {
   }
 
   @Override
-  public String help() {
-    return "manage the default selector, args; [reset] | [add family [columnName*]]";
+  public String description() {
+    return "Manage the default selector.";
+  }
+
+  @Override
+  public String usage() {
+    return "reset | add <family> [<columnName>*]";
+  }
+
+  @Override
+  public String name() {
+    return "selector";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/ShardClusterListCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/ShardClusterListCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/ShardClusterListCommand.java
index a1f590f..1d07ecc 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/ShardClusterListCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/ShardClusterListCommand.java
@@ -36,7 +36,17 @@ public class ShardClusterListCommand extends Command {
   }
 
   @Override
-  public String help() {
-    return "list the clusters";
+  public String description() {
+    return "List the clusters.";
+  }
+
+  @Override
+  public String usage() {
+    return "";
+  }
+
+  @Override
+  public String name() {
+    return "clusterlist";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/ShardServerLayoutCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/ShardServerLayoutCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/ShardServerLayoutCommand.java
index a9d4d82..733790d 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/ShardServerLayoutCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/ShardServerLayoutCommand.java
@@ -42,7 +42,17 @@ public class ShardServerLayoutCommand extends Command {
   }
 
   @Override
-  public String help() {
-    return "list the server layout for a table, args: tablename";
+  public String description() {
+    return "List the server layout for a table.";
+  }
+
+  @Override
+  public String usage() {
+    return "<tablename>";
+  }
+
+  @Override
+  public String name() {
+    return "layout";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/ShardsEchoCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/ShardsEchoCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/ShardsEchoCommand.java
index 9ab5478..b0609e6 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/ShardsEchoCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/ShardsEchoCommand.java
@@ -63,11 +63,6 @@ public class ShardsEchoCommand extends Command {
     return false;
   }
 
-  @Override
-  public String help() {
-    return "list shards, args; clustername";
-  }
-
   public static String getNodeName() {
     try {
       return InetAddress.getLocalHost().getHostName();
@@ -82,4 +77,19 @@ public class ShardsEchoCommand extends Command {
     }
   }
 
+  @Override
+  public String description() {
+    return "list shards";
+  }
+
+  @Override
+  public String usage() {
+    return "<clustername>";
+  }
+
+  @Override
+  public String name() {
+    return "shards";
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/TableStatsCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/TableStatsCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/TableStatsCommand.java
index 129f266..b969337 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/TableStatsCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/TableStatsCommand.java
@@ -77,7 +77,17 @@ public class TableStatsCommand extends Command implements TableFirstArgCommand {
   }
 
   @Override
-  public String help() {
-    return "print stats for the named table";
+  public String description() {
+    return "Print stats for the named table.";
+  }
+
+  @Override
+  public String usage() {
+    return "<tablename>";
+  }
+
+  @Override
+  public String name() {
+    return "stats";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/TopCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/TopCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/TopCommand.java
index c7e952b..a4b67aa 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/TopCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/TopCommand.java
@@ -437,7 +437,17 @@ public class TopCommand extends Command {
   }
 
   @Override
-  public String help() {
-    return "top arg; cluster";
+  public String description() {
+    return "Top for watching shard clusters.";
+  }
+
+  @Override
+  public String usage() {
+    return "[<cluster>]";
+  }
+
+  @Override
+  public String name() {
+    return "top";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/TruncateTableCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/TruncateTableCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/TruncateTableCommand.java
index 8548b9e..71ed6cc 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/TruncateTableCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/TruncateTableCommand.java
@@ -54,7 +54,17 @@ public class TruncateTableCommand extends Command implements TableFirstArgComman
   }
 
   @Override
-  public String help() {
-    return "truncate the named table, args; tablename";
+  public String description() {
+    return "Truncate the named table.";
+  }
+
+  @Override
+  public String usage() {
+    return "<tablename>";
+  }
+
+  @Override
+  public String name() {
+    return "truncate";
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/blur-shell/src/main/java/org/apache/blur/shell/WaitInSafemodeCommand.java
----------------------------------------------------------------------
diff --git a/blur-shell/src/main/java/org/apache/blur/shell/WaitInSafemodeCommand.java b/blur-shell/src/main/java/org/apache/blur/shell/WaitInSafemodeCommand.java
index 8d3fcac..85e8e60 100644
--- a/blur-shell/src/main/java/org/apache/blur/shell/WaitInSafemodeCommand.java
+++ b/blur-shell/src/main/java/org/apache/blur/shell/WaitInSafemodeCommand.java
@@ -57,8 +57,18 @@ public class WaitInSafemodeCommand extends Command {
   }
 
   @Override
-  public String help() {
-    return "wait for safe mode to exit, args; clustername";
+  public String description() {
+    return "Wait for safe mode to exit.";
+  }
+
+  @Override
+  public String usage() {
+    return "[<clustername>]";
+  }
+
+  @Override
+  public String name() {
+    return "safemodewait";
   }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/docs/using-blur.base.html
----------------------------------------------------------------------
diff --git a/docs/using-blur.base.html b/docs/using-blur.base.html
new file mode 100644
index 0000000..a82a9b5
--- /dev/null
+++ b/docs/using-blur.base.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html>
+<!-- 
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<html>
+  <head>
+    <title>Using Blur - Apache Blur (Incubator) Documentation</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <!-- Bootstrap -->
+    <link href="resources/css/bootstrap.min.css" rel="stylesheet" media="screen">
+    <link href="resources/css/bs-docs.css" rel="stylesheet" media="screen">
+  </head>
+  <body>
+    <div class="navbar navbar-inverse navbar-fixed-top">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="index.html">Apache Blur (Incubator)</a>
+        </div>
+        <div class="collapse navbar-collapse">
+          <ul class="nav navbar-nav">
+            <li><a href="getting-started.html">Getting Started</a></li>
+            <li><a href="data-model.html">Data Model</a></li>
+            <li><a href="cluster-setup.html">Cluster Setup</a></li>
+            <li class="active"><a href="using-blur.html">Using Blur</a></li>
+            <li><a href="Blur.html">Blur API</a></li>
+          </ul>
+        </div>
+      </div>
+    </div>
+    <div class="container bs-docs-container">
+      <div class="row">
+        <div class="col-md-3">
+          <div class="bs-sidebar hidden-print affix" role="complementary">
+            <ul class="nav bs-sidenav">
+              <li><a href="#shell">Shell</a>
+				<ul class="nav">
+|||Shell-Menu|||
+				</ul>
+			  </li>
+              <li><a href="#map-reduce">Map Reduce</a></li>
+              <li><a href="#thrift-client">Thrift Client</a></li>
+              <li><a href="#jdbc">JDBC</a></li>
+            </ul>
+          </div>
+        </div>
+        <div class="col-md-9" role="main">
+          <section>
+            <div class="page-header">
+              <h1 id="shell">Shell</h1>
+            </div>
+|||Shell-Body|||
+          </section>
+          <section>
+            <div class="page-header">
+              <h1 id="map-reduce">Map Reduce</h1>
+            </div>
+            <p class="lead">Here is an example of the typical usage of the BlurOutputFormat. The Blur table has to be created before the MapReduce job is started. The setupJob method configures the following:</p>
+            <ul>
+              <li>The reducer class to be DefaultBlurReducer</li>
+              <li>The number of reducers to be equal to the number of shards in the table.</li>
+              <li>The output key class to a standard Text writable from the Hadoop library</li>
+              <li>The output value class is a BlurMutate writable from the Blur library</li>
+              <li>The output format to be BlurOutputFormat</li>
+              <li>Sets the TableDescriptor in the Configuration</li>
+              <li>Sets the output path to the TableDescriptor.getTableUri() value</li>
+              <li>Also the job will use the BlurOutputCommitter class to commit or rollback the MapReduce job</li>
+            </ul>
+            <h3>Example Usage</h3>
+            <pre><code class="java">Iface client = BlurClient.getClient("controller1:40010");
+
+TableDescriptor tableDescriptor = client.describe(tableName);
+
+Job job = new Job(jobConf, "blur index");
+job.setJarByClass(BlurOutputFormatTest.class);
+job.setMapperClass(CsvBlurMapper.class);
+job.setInputFormatClass(TextInputFormat.class);
+
+FileInputFormat.addInputPath(job, new Path(input));
+CsvBlurMapper.addColumns(job, "cf1", "col");
+
+BlurOutputFormat.setupJob(job, tableDescriptor);
+BlurOutputFormat.setIndexLocally(job, true);
+BlurOutputFormat.setOptimizeInFlight(job, false);
+
+job.waitForCompletion(true);</code></pre>
+            <h3>Options</h3>
+            <ul>
+              <li>
+                BlurOutputFormat.setIndexLocally(Job,boolean)
+                <ul><li>Enabled by default, this will enable local indexing on the machine where the task is running. Then when the RecordWriter closes the index is copied to the remote destination in HDFS.</li></ul>
+              </li>
+              <li>
+                BlurOutputFormat.setMaxDocumentBufferSize(Job,int)
+                <ul><li>Sets the maximum number of documents that the buffer will hold in memory before overflowing to disk. By default this is 1000 which will probably be very low for most systems.</li></ul>
+              </li>
+              <li>
+                BlurOutputFormat.setOptimizeInFlight(Job,boolean)
+                <ul><li>Enabled by default, this will optimize the index while copying from the local index to the remote destination in HDFS. Used in conjunction with the setIndexLocally.</li></ul>
+              </li>
+              <li>
+                BlurOutputFormat.setReducerMultiplier(Job,int)
+                <ul><li>This will multiple the number of reducers for this job. For example if the table has 256 shards the normal number of reducers is 256. However if the reducer multiplier is set to 4 then the number of reducers will be 1024 and each shard will get 4 new segments instead of the normal 1.</li></ul>
+              </li>
+            </ul>
+          </section>
+          <section>
+            <div class="page-header">
+              <h1 id="thrift-client">Thrift Client</h1>
+            </div>
+            <p class="lead">TODO</p>
+          </section>
+          <section>
+            <div class="page-header">
+              <h1 id="jdbc">JDBC</h1>
+            </div>
+            <p class="lead">TODO</p>
+          </section>
+        </div>
+      </div>
+    </div>
+    
+    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
+    <script src="resources/js/jquery-2.0.3.min.js"></script>
+    <!-- Include all compiled plugins (below), or include individual files as needed -->
+    <script src="resources/js/bootstrap.min.js"></script>
+    <!-- Enable responsive features in IE8 with Respond.js (https://github.com/scottjehl/Respond) -->
+    <script src="resources/js/respond.min.js"></script>
+    <script src="resources/js/docs.js"></script>
+  </body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f28d000a/docs/using-blur.html
----------------------------------------------------------------------
diff --git a/docs/using-blur.html b/docs/using-blur.html
index 18ba486..18ef606 100644
--- a/docs/using-blur.html
+++ b/docs/using-blur.html
@@ -1,86 +1,222 @@
 <!DOCTYPE html>
-<!-- 
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
 -->
 <html>
-  <head>
-    <title>Using Blur - Apache Blur (Incubator) Documentation</title>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <!-- Bootstrap -->
-    <link href="resources/css/bootstrap.min.css" rel="stylesheet" media="screen">
-    <link href="resources/css/bs-docs.css" rel="stylesheet" media="screen">
-  </head>
-  <body>
-    <div class="navbar navbar-inverse navbar-fixed-top">
-      <div class="container">
-        <div class="navbar-header">
-          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
-            <span class="icon-bar"></span>
-            <span class="icon-bar"></span>
-            <span class="icon-bar"></span>
-          </button>
-          <a class="navbar-brand" href="index.html">Apache Blur (Incubator)</a>
-        </div>
-        <div class="collapse navbar-collapse">
-          <ul class="nav navbar-nav">
-            <li><a href="getting-started.html">Getting Started</a></li>
-            <li><a href="data-model.html">Data Model</a></li>
-            <li><a href="cluster-setup.html">Cluster Setup</a></li>
-            <li class="active"><a href="using-blur.html">Using Blur</a></li>
-            <li><a href="Blur.html">Blur API</a></li>
-          </ul>
-        </div>
-      </div>
-    </div>
-    <div class="container bs-docs-container">
-      <div class="row">
-        <div class="col-md-3">
-          <div class="bs-sidebar hidden-print affix" role="complementary">
-            <ul class="nav bs-sidenav">
-              <li><a href="#shell">Shell</a></li>
-              <li><a href="#map-reduce">Map Reduce</a></li>
-              <li><a href="#thrift-client">Thrift Client</a></li>
-              <li><a href="#jdbc">JDBC</a></li>
-            </ul>
-          </div>
-        </div>
-        <div class="col-md-9" role="main">
-          <section>
-            <div class="page-header">
-              <h1 id="shell">Shell</h1>
-            </div>
-            <p class="lead">TODO</p>
-          </section>
-          <section>
-            <div class="page-header">
-              <h1 id="map-reduce">Map Reduce</h1>
-            </div>
-            <p class="lead">Here is an example of the typical usage of the BlurOutputFormat. The Blur table has to be created before the MapReduce job is started. The setupJob method configures the following:</p>
-            <ul>
-              <li>The reducer class to be DefaultBlurReducer</li>
-              <li>The number of reducers to be equal to the number of shards in the table.</li>
-              <li>The output key class to a standard Text writable from the Hadoop library</li>
-              <li>The output value class is a BlurMutate writable from the Blur library</li>
-              <li>The output format to be BlurOutputFormat</li>
-              <li>Sets the TableDescriptor in the Configuration</li>
-              <li>Sets the output path to the TableDescriptor.getTableUri() value</li>
-              <li>Also the job will use the BlurOutputCommitter class to commit or rollback the MapReduce job</li>
-            </ul>
-            <h3>Example Usage</h3>
-            <pre><code class="java">Iface client = BlurClient.getClient("controller1:40010");
+<head>
+<title>Using Blur - Apache Blur (Incubator) Documentation</title>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<!-- Bootstrap -->
+<link href="resources/css/bootstrap.min.css" rel="stylesheet" media="screen">
+<link href="resources/css/bs-docs.css" rel="stylesheet" media="screen">
+</head>
+<body>
+<div class="navbar navbar-inverse navbar-fixed-top">
+<div class="container">
+<div class="navbar-header">
+<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+<span class="icon-bar"></span>
+<span class="icon-bar"></span>
+<span class="icon-bar"></span>
+</button>
+<a class="navbar-brand" href="index.html">Apache Blur (Incubator)</a>
+</div>
+<div class="collapse navbar-collapse">
+<ul class="nav navbar-nav">
+<li><a href="getting-started.html">Getting Started</a></li>
+<li><a href="data-model.html">Data Model</a></li>
+<li><a href="cluster-setup.html">Cluster Setup</a></li>
+<li class="active"><a href="using-blur.html">Using Blur</a></li>
+<li><a href="Blur.html">Blur API</a></li>
+</ul>
+</div>
+</div>
+</div>
+<div class="container bs-docs-container">
+<div class="row">
+<div class="col-md-3">
+<div class="bs-sidebar hidden-print affix" role="complementary">
+<ul class="nav bs-sidenav">
+<li><a href="#shell">Shell</a>
+<ul class="nav">
+<li><a href="#shell_table_commands">Table Commands</a>
+<ul class="nav">
+<li><a href="#shell_command_create">&nbsp;&nbsp;create</a></li>
+<li><a href="#shell_command_enable">&nbsp;&nbsp;enable</a></li>
+<li><a href="#shell_command_disable">&nbsp;&nbsp;disable</a></li>
+<li><a href="#shell_command_remove">&nbsp;&nbsp;remove</a></li>
+<li><a href="#shell_command_truncate">&nbsp;&nbsp;truncate</a></li>
+<li><a href="#shell_command_describe">&nbsp;&nbsp;describe</a></li>
+<li><a href="#shell_command_list">&nbsp;&nbsp;list</a></li>
+<li><a href="#shell_command_schema">&nbsp;&nbsp;schema</a></li>
+<li><a href="#shell_command_stats">&nbsp;&nbsp;stats</a></li>
+<li><a href="#shell_command_layout">&nbsp;&nbsp;layout</a></li>
+<li><a href="#shell_command_parse">&nbsp;&nbsp;parse</a></li>
+<li><a href="#shell_command_definecolumn">&nbsp;&nbsp;definecolumn</a></li>
+</ul></li>
+<li><a href="#shell_data_commands">Data Commands</a>
+<ul class="nav">
+<li><a href="#shell_command_query">&nbsp;&nbsp;query</a></li>
+<li><a href="#shell_command_get">&nbsp;&nbsp;get</a></li>
+<li><a href="#shell_command_mutate">&nbsp;&nbsp;mutate</a></li>
+<li><a href="#shell_command_delete">&nbsp;&nbsp;delete</a></li>
+<li><a href="#shell_command_highlight">&nbsp;&nbsp;highlight</a></li>
+<li><a href="#shell_command_selector">&nbsp;&nbsp;selector</a></li>
+</ul></li>
+<li><a href="#shell_cluster_commands">Cluster Commands</a>
+<ul class="nav">
+<li><a href="#shell_command_controllers">&nbsp;&nbsp;controllers</a></li>
+<li><a href="#shell_command_shards">&nbsp;&nbsp;shards</a></li>
+<li><a href="#shell_command_clusterlist">&nbsp;&nbsp;clusterlist</a></li>
+<li><a href="#shell_command_cluster">&nbsp;&nbsp;cluster</a></li>
+<li><a href="#shell_command_safemodewait">&nbsp;&nbsp;safemodewait</a></li>
+<li><a href="#shell_command_top">&nbsp;&nbsp;top</a></li>
+</ul></li>
+<li><a href="#shell_shell_commands">Shell Commands</a>
+<ul class="nav">
+<li><a href="#shell_command_help">&nbsp;&nbsp;help</a></li>
+<li><a href="#shell_command_debug">&nbsp;&nbsp;debug</a></li>
+<li><a href="#shell_command_timed">&nbsp;&nbsp;timed</a></li>
+<li><a href="#shell_command_quit">&nbsp;&nbsp;quit</a></li>
+<li><a href="#shell_command_reset">&nbsp;&nbsp;reset</a></li>
+</ul></li>
+
+</ul>
+</li>
+<li><a href="#map-reduce">Map Reduce</a></li>
+<li><a href="#thrift-client">Thrift Client</a></li>
+<li><a href="#jdbc">JDBC</a></li>
+</ul>
+</div>
+</div>
+<div class="col-md-9" role="main">
+<section>
+<div class="page-header">
+<h1 id="shell">Shell</h1>
+</div>
+<h3 id="shell_table_commands">Table Commands</h3>
+<h4 id="shell_command_create">create</h4>
+<p>Description: Create the named table.<br/>
+<pre><code class="bash">create &lt;tablename&gt; &lt;tableuri&gt; &lt;shardcount&gt;</code></pre></p>
+<h4 id="shell_command_enable">enable</h4>
+<p>Description: Enable the named table.<br/>
+<pre><code class="bash">enable &lt;tablename&gt;</code></pre></p>
+<h4 id="shell_command_disable">disable</h4>
+<p>Description: Disable the named table.<br/>
+<pre><code class="bash">disable &lt;tablename&gt;</code></pre></p>
+<h4 id="shell_command_remove">remove</h4>
+<p>Description: Remove the named table.<br/>
+<pre><code class="bash">remove &lt;tablename&gt;</code></pre></p>
+<h4 id="shell_command_truncate">truncate</h4>
+<p>Description: Truncate the named table.<br/>
+<pre><code class="bash">truncate &lt;tablename&gt;</code></pre></p>
+<h4 id="shell_command_describe">describe</h4>
+<p>Description: Describe the named table.<br/>
+<pre><code class="bash">describe &lt;tablename&gt;</code></pre></p>
+<h4 id="shell_command_list">list</h4>
+<p>Description: List tables.<br/>
+<pre><code class="bash">list </code></pre></p>
+<h4 id="shell_command_schema">schema</h4>
+<p>Description: Schema of the named table.<br/>
+<pre><code class="bash">schema &lt;tablename&gt;</code></pre></p>
+<h4 id="shell_command_stats">stats</h4>
+<p>Description: Print stats for the named table.<br/>
+<pre><code class="bash">stats &lt;tablename&gt;</code></pre></p>
+<h4 id="shell_command_layout">layout</h4>
+<p>Description: List the server layout for a table.<br/>
+<pre><code class="bash">layout &lt;tablename&gt;</code></pre></p>
+<h4 id="shell_command_parse">parse</h4>
+<p>Description: Parse a query and return string representation.<br/>
+<pre><code class="bash">parse &lt;tablename&gt; &lt;query&gt;</code></pre></p>
+<h4 id="shell_command_definecolumn">definecolumn</h4>
+<p>Description: Defines a new column in the named table.<br/>
+<pre><code class="bash">definecolumn &lt;table name&gt; &lt;family&gt; &lt;column name&gt; &lt;type&gt; [-s &lt;sub column name&gt;] [-F] [-p name value]*</code></pre></p>
+<h3 id="shell_data_commands">Data Commands</h3>
+<h4 id="shell_command_query">query</h4>
+<p>Description: Query the named table.<br/>
+<pre><code class="bash">query &lt;tablename&gt; &lt;query&gt;</code></pre></p>
+<h4 id="shell_command_get">get</h4>
+<p>Description: display the specified row<br/>
+<pre><code class="bash">get &lt;tablename&gt; &lt;rowid&gt;</code></pre></p>
+<h4 id="shell_command_mutate">mutate</h4>
+<p>Description: Mutate the specified row.<br/>
+<pre><code class="bash">mutate &lt;tablename&gt; &lt;rowid&gt; &lt;recordid&gt; &lt;columnfamily&gt; &lt;columnname&gt; &lt;value&gt;</code></pre></p>
+<h4 id="shell_command_delete">delete</h4>
+<p>Description: Delete the specified row.<br/>
+<pre><code class="bash">delete &lt;tablename&gt; &lt;rowid&gt;</code></pre></p>
+<h4 id="shell_command_highlight">highlight</h4>
+<p>Description: Toggle highlight of query output on/off.<br/>
+<pre><code class="bash">highlight </code></pre></p>
+<h4 id="shell_command_selector">selector</h4>
+<p>Description: Manage the default selector.<br/>
+<pre><code class="bash">selector reset | add &lt;family&gt; [&lt;columnName&gt;*]</code></pre></p>
+<h3 id="shell_cluster_commands">Cluster Commands</h3>
+<h4 id="shell_command_controllers">controllers</h4>
+<p>Description: List controllers.<br/>
+<pre><code class="bash">controllers </code></pre></p>
+<h4 id="shell_command_shards">shards</h4>
+<p>Description: list shards<br/>
+<pre><code class="bash">shards &lt;clustername&gt;</code></pre></p>
+<h4 id="shell_command_clusterlist">clusterlist</h4>
+<p>Description: List the clusters.<br/>
+<pre><code class="bash">clusterlist </code></pre></p>
+<h4 id="shell_command_cluster">cluster</h4>
+<p>Description: Set the cluster in use.<br/>
+<pre><code class="bash">cluster &lt;clustername&gt;</code></pre></p>
+<h4 id="shell_command_safemodewait">safemodewait</h4>
+<p>Description: Wait for safe mode to exit.<br/>
+<pre><code class="bash">safemodewait [&lt;clustername&gt;]</code></pre></p>
+<h4 id="shell_command_top">top</h4>
+<p>Description: Top for watching shard clusters.<br/>
+<pre><code class="bash">top [&lt;cluster&gt;]</code></pre></p>
+<h3 id="shell_shell_commands">Shell Commands</h3>
+<h4 id="shell_command_help">help</h4>
+<p>Description: Display help.<br/>
+<pre><code class="bash">help </code></pre></p>
+<h4 id="shell_command_debug">debug</h4>
+<p>Description: Toggle debugging on/off.<br/>
+<pre><code class="bash">debug </code></pre></p>
+<h4 id="shell_command_timed">timed</h4>
+<p>Description: Toggle timing of commands on/off.<br/>
+<pre><code class="bash">timed </code></pre></p>
+<h4 id="shell_command_quit">quit</h4>
+<p>Description: Exit the shell.<br/>
+<pre><code class="bash">quit </code></pre></p>
+<h4 id="shell_command_reset">reset</h4>
+<p>Description: Resets the terminal window.<br/>
+<pre><code class="bash">reset </code></pre></p>
+
+</section>
+<section>
+<div class="page-header">
+<h1 id="map-reduce">Map Reduce</h1>
+</div>
+<p class="lead">Here is an example of the typical usage of the BlurOutputFormat. The Blur table has to be created before the MapReduce job is started. The setupJob method configures the following:</p>
+<ul>
+<li>The reducer class to be DefaultBlurReducer</li>
+<li>The number of reducers to be equal to the number of shards in the table.</li>
+<li>The output key class to a standard Text writable from the Hadoop library</li>
+<li>The output value class is a BlurMutate writable from the Blur library</li>
+<li>The output format to be BlurOutputFormat</li>
+<li>Sets the TableDescriptor in the Configuration</li>
+<li>Sets the output path to the TableDescriptor.getTableUri() value</li>
+<li>Also the job will use the BlurOutputCommitter class to commit or rollback the MapReduce job</li>
+</ul>
+<h3>Example Usage</h3>
+<pre><code class="java">Iface client = BlurClient.getClient("controller1:40010");
 
 TableDescriptor tableDescriptor = client.describe(tableName);
 
@@ -97,48 +233,48 @@ BlurOutputFormat.setIndexLocally(job, true);
 BlurOutputFormat.setOptimizeInFlight(job, false);
 
 job.waitForCompletion(true);</code></pre>
-            <h3>Options</h3>
-            <ul>
-              <li>
-                BlurOutputFormat.setIndexLocally(Job,boolean)
-                <ul><li>Enabled by default, this will enable local indexing on the machine where the task is running. Then when the RecordWriter closes the index is copied to the remote destination in HDFS.</li></ul>
-              </li>
-              <li>
-                BlurOutputFormat.setMaxDocumentBufferSize(Job,int)
-                <ul><li>Sets the maximum number of documents that the buffer will hold in memory before overflowing to disk. By default this is 1000 which will probably be very low for most systems.</li></ul>
-              </li>
-              <li>
-                BlurOutputFormat.setOptimizeInFlight(Job,boolean)
-                <ul><li>Enabled by default, this will optimize the index while copying from the local index to the remote destination in HDFS. Used in conjunction with the setIndexLocally.</li></ul>
-              </li>
-              <li>
-                BlurOutputFormat.setReducerMultiplier(Job,int)
-                <ul><li>This will multiple the number of reducers for this job. For example if the table has 256 shards the normal number of reducers is 256. However if the reducer multiplier is set to 4 then the number of reducers will be 1024 and each shard will get 4 new segments instead of the normal 1.</li></ul>
-              </li>
-            </ul>
-          </section>
-          <section>
-            <div class="page-header">
-              <h1 id="thrift-client">Thrift Client</h1>
-            </div>
-            <p class="lead">TODO</p>
-          </section>
-          <section>
-            <div class="page-header">
-              <h1 id="jdbc">JDBC</h1>
-            </div>
-            <p class="lead">TODO</p>
-          </section>
-        </div>
-      </div>
-    </div>
-    
-    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
-    <script src="resources/js/jquery-2.0.3.min.js"></script>
-    <!-- Include all compiled plugins (below), or include individual files as needed -->
-    <script src="resources/js/bootstrap.min.js"></script>
-    <!-- Enable responsive features in IE8 with Respond.js (https://github.com/scottjehl/Respond) -->
-    <script src="resources/js/respond.min.js"></script>
-    <script src="resources/js/docs.js"></script>
-  </body>
-</html>
\ No newline at end of file
+<h3>Options</h3>
+<ul>
+<li>
+BlurOutputFormat.setIndexLocally(Job,boolean)
+<ul><li>Enabled by default, this will enable local indexing on the machine where the task is running. Then when the RecordWriter closes the index is copied to the remote destination in HDFS.</li></ul>
+</li>
+<li>
+BlurOutputFormat.setMaxDocumentBufferSize(Job,int)
+<ul><li>Sets the maximum number of documents that the buffer will hold in memory before overflowing to disk. By default this is 1000 which will probably be very low for most systems.</li></ul>
+</li>
+<li>
+BlurOutputFormat.setOptimizeInFlight(Job,boolean)
+<ul><li>Enabled by default, this will optimize the index while copying from the local index to the remote destination in HDFS. Used in conjunction with the setIndexLocally.</li></ul>
+</li>
+<li>
+BlurOutputFormat.setReducerMultiplier(Job,int)
+<ul><li>This will multiple the number of reducers for this job. For example if the table has 256 shards the normal number of reducers is 256. However if the reducer multiplier is set to 4 then the number of reducers will be 1024 and each shard will get 4 new segments instead of the normal 1.</li></ul>
+</li>
+</ul>
+</section>
+<section>
+<div class="page-header">
+<h1 id="thrift-client">Thrift Client</h1>
+</div>
+<p class="lead">TODO</p>
+</section>
+<section>
+<div class="page-header">
+<h1 id="jdbc">JDBC</h1>
+</div>
+<p class="lead">TODO</p>
+</section>
+</div>
+</div>
+</div>
+
+<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
+<script src="resources/js/jquery-2.0.3.min.js"></script>
+<!-- Include all compiled plugins (below), or include individual files as needed -->
+<script src="resources/js/bootstrap.min.js"></script>
+<!-- Enable responsive features in IE8 with Respond.js (https://github.com/scottjehl/Respond) -->
+<script src="resources/js/respond.min.js"></script>
+<script src="resources/js/docs.js"></script>
+</body>
+</html>


Mime
View raw message