Github user ctubbsii commented on a diff in the pull request:
https://github.com/apache/accumulo/pull/184#discussion_r88329084
--- Diff: _posts/blog/2016-11-16-simpler-scripts-and-config.md ---
@@ -0,0 +1,163 @@
+---
+title: "Simpler scripts and configuration coming in Accumulo 2.0.0"
+author: Mike Walch
+reviewers: Josh Elser, Chistopher Tubbs
+---
+
+For the upcoming 2.0.0 release, Accumulo's scripts and configuration were
refactored (in
+[ACCUMULO-4490]) to make Accumulo easier to use. While Accumulo's
documentation (i.e. the user
+manual and [INSTALL.md]) were updated with any changes that were made,
this blog post provides
+a summary of the changes.
+
+### Fewer scripts
+
+Before 2.0.0, the `bin/` directory of Accumulo's distribution contained
about 20 scripts:
+
+```bash
+$ ls accumulo-1.8.0/bin/
+accumulo build_native_library.sh
generate_monitor_certificate.sh start-here.sh stop-server.sh
+accumulo_watcher.sh check-slaves LogForwarder.sh
start-server.sh tdown.sh
+bootstrap_config.sh config-server.sh start-all.sh
stop-all.sh tool.sh
+bootstrap_hdfs.sh config.sh start-daemon.sh
stop-here.sh tup.sh
+```
+
+The number of scripts made it difficult to know which scripts to use. If
you added the `bin/` directory to your
+`PATH`, it could add unecessary commands to your PATH or cause commands to
be overriden due generic names
+(like 'start-all.sh'). The number of scripts were reduced using the
following methods:
+
+* Scripts that are only called by other scripts were moved to a new
`libexec/` directory in the Accumulo distribution
+* Scripts with similiar functionality were combined
+* Extra/optional scripts were move to a new `contrib/` directory in the
distribution
+
+Starting with 2.0.0, Accumulo will only have 3 scripts in its `bin/`
directory:
+
+```bash
+$ ls accumulo-2.0.0/bin/
+accumulo accumulo-cluster accumulo-service
+```
+
+Below are some notes on this change:
+
+* The 'accumulo' script was left alone except for improved usage and the
addition of 'create-config' and 'build-native'
+ commands to replace 'bootstrap_config.sh' and 'build_native_library.sh'.
+* The 'accumulo-service' script was created to manage Accumulo processes
as services
+* The 'accumulo-cluster' command was created to manage Accumulo on cluster
and replaces 'start-all.sh' and 'stop-all.sh'.
+* All optional scripts in `bin/` were moved to `contrib/`:
+
+ $ ls accumulo-2.0.0/contrib/
+ bootstrap-hdfs.sh check-tservers gen-monitor-cert.sh tool.sh
+
+### Less configuration
+
+Before 2.0.0, Accumulo's `conf/` directory looked like the following
(after creating initial config files
+using 'bootstrap_config.sh'):
+
+```bash
+$ ls accumulo-1.8.0/conf/
+accumulo-env.sh auditLog.xml generic_logger.properties
masters slaves
+accumulo-metrics.xml client.conf generic_logger.xml
monitor templates
+accumulo.policy.example examples hadoop-metrics2-accumulo.properties
monitor_logger.properties tracers
+accumulo-site.xml gc log4j.properties
monitor_logger.xml
+```
+
+While all of these files have a purpose, many are only used in rare
situations. Therefore, the
+'accumulo create-config' (which replaces 'bootstrap_config.sh') now only
generates a minimum
+set of configuration files needed to run Accumulo.
+
+```bash
+$ cd accumulo-2.0.0
+$ ./bin/accumulo create-config
+$ ls conf/
+accumulo-env.sh accumulo-site.xml client.conf examples
+```
+
+The 'accumulo create-config' command does not generate host files (i.e
'tservers', 'monitor', etc) to run processes locally.
+These files are only required by the 'accumulo-cluster' command which has
a command to generate them.
+
+```bash
+$ cd accumulo-2.0.0/
+$ ./bin/accumulo-cluster create-config
+$ ls conf/
+accumulo-env.sh accumulo-site.xml client.conf examples gc masters
monitor tracers tservers
+```
+
+Any less common configuration files that were not generated above can
still be found in `conf/examples`.
+
+### Better usage
+
+Before 2.0.0, the 'accumulo' command had a limited usage:
+
+```
+$ ./accumulo-1.8.0/bin/accumulo
+accumulo admin | check-server-config | classpath | create-token | gc |
help | info | init | jar <jar> [<main class>] args |
+ login-info | master | minicluster | monitor | proxy | rfile-info | shell
| tracer | tserver | version | zookeeper | <accumulo class> args
+```
+
+For 2.0.0, all 'accumulo' commands were given a short description and
organized into the groups.
+
+```
+$ ./accumulo-2.0.0/bin/accumulo help
+
+Usage: accumulo <command> (<argument> ...)
+
+Core Commands:
+ create-config Create Accumulo configuration
+ build-native Build Accumulo native libraries
+ init Initializes Accumulo
+ shell Run Accumulo shell
+ classpath Print Accumulo classpath
+ version Print Accumulo version
+ admin Execute administrative commands
+ info Print Accumulo cluster info
+ help Prints usage
+ jar <jar> [<main class>] args Run Java <main class> in <jar> using
Accumulo classpath
+ <main class> args Run Java <main class> located on Accumulo
classpath
+
+Process Commands:
+ gc Start Accumulo garbage collector
+ master Start Accumulo master
+ monitor Start Accumulo monitor
+ minicluster Start Accumulo minicluster
+ proxy Start Accumulo proxy
+ tserver Start Accumulo tablet server
+ tracer Start Accumulo tracer
+ zookeeper Start Apache Zookeeper instance
+
+Advanced Commands:
+ check-server-config Checks server config
+ create-token Creates authentication token
+ login-info Print Accumulo login info
+ rfile-info Print rfile info
+```
+
+The new 'accumulo-service' and 'accumulo-cluster' commands also have
informative usage.
+
+```
+$ ./accumulo-2.0.0/bin/accumulo-service
+
+Usage: accumulo-service <service> <command>
+
+Services:
+ gc Accumulo garbage collector
+ monitor Accumulo monitor
+ master Accumulo master
+ tserver Accumulo tserver
+ tracer Accumulo tracter
+
+Commands:
+ start Start service
+ stop Stop service
+ kill Kill service
+
+$ ./accumulo-2.0.0/bin/accumulo-cluster
+
+Usage: accumulo-cluster <command> (<argument> ...)
+
+Commands:
+ create-config Creates cluster config
+ start Starts Accumulo cluster
+ stop Stops Accumulo cluster
+```
+
+[ACCUMULO-4490]: https://issues.apache.org/jira/browse/ACCUMULO-4490
+[INSTALL.md]: https://github.com/apache/accumulo/blob/master/INSTALL.md
--- End diff --
Note: Link will need to be updated upon release, to point to the tag or
commit, so it doesn't get stale.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---