accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ctubbsii <...@git.apache.org>
Subject [GitHub] accumulo pull request #184: Blog post about simplified scripts in 2.0.0
Date Wed, 16 Nov 2016 20:58:31 GMT
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message