Github user ctubbsii commented on a diff in the pull request:
https://github.com/apache/accumulo/pull/184#discussion_r88328518
--- 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
--- End diff --
Descriptions [should use][1] third-person, active voice, indicative mood,
while instructions should use second-person, active voice, imperative mood.
[1]:
http://www.technicalauthoring.com/wiki/index.php/Using_the_correct_language
---
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.
---