Github user joshelser commented on a diff in the pull request:

    https://github.com/apache/accumulo/pull/184#discussion_r88279079
  
    --- 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 --
    
    I'm just noticing the inconsistency in the description:
    
    > Create Accumulo configuration
    
    > Initializes Accumulo
    
    I assume this would be a tweaking of the scripts themselves and then later 
updating this post?
    
    Personally, because these are all actions, they should all be 3rd-person:
    
    > Creates Accumulo configuration
    > Builds Accumulo native libraries
    > Prints Accumulo version


---
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.
---

Reply via email to