aredee / accumulo-mesos

Apache License 2.0
17 stars 2 forks source link

Accumulo Mesos Framework

Initialize and run Accumulo clusters as a Mesos framework.


DISCLAIMER This is a very early version of accumulo-mesos framework. This document, code behavior, and anything else may change without notice and/or break older installations.


Design

The accumulo-mesos framework launches accumulo server processes on mesos client machines using the $ACCUMULO_HOME/bin/accumulo <server> script. It automatically configures Java and Accumulo memory settings based on the mesos offer. The framework doesn't depend on Accumulo directly so it should be able to support the more recent versions of Accumulo. It is tested with 1.7.0

Current Status

Implemented

Near Term Tasks

Running the Framework

First you have to upload artifacts to HDFS (accumulo tarball, framework tarball, native libs .so) and copy that into your config JSON structures. (see dev/config)

Running the framework is then a two step process. First you must initialize the framework. See dev/init_framework.sh Then you can run the framework see dev\start_framework.sh

java -jar /vagrant/dev/dist/accumulo-mesos-dist-0.2.0-SNAPSHOT/accumulo-mesos-framework-0.2.0-SNAPSHOT-jar-with-dependencies.jar -h
usage: accumulo-mesos [-b <arg>] [-cc <arg>] [-fc <arg>] [-h] [-i] [-m
       <arg>] [-n <arg>] [-P <arg>] [-t <arg>] [-v] [-z <arg>]
 -b,--bind-address <arg>   IP address of interface to bind HTTP interface
                           to
 -cc,--cluster <arg>       JSON file containing cluster configuration
 -fc,--framework <arg>     JSON file of entire framework configuration
 -h,--help                 Print this message and exit
 -i,--init                 If present, initialize new Accumulo instance
 -m,--master <arg>         Location of mesos master to connect to
 -n,--name <arg>           Name of this mesos framework
 -P,--port <arg>           Port number to serve HTTP interface
 -t,--tarball <arg>        URI of framework tarball
 -v,--version              Show version number
 -z,--zookeepers <arg>     List of Zookeeper servers

Configuration

See config examples in dev/config

Testing

A multi-vm Vagrantfile is provided along with many provisioning scripts to setup the VMs for testing the framework. See /dev directory for more info.

Thanks

Thanks to the cassandra-mesos project. I stole a lot of the project setup and framework design ideas from there.