Skip to content

Deployment Dependencies

Clemens Lieb edited this page Jan 27, 2018 · 4 revisions

There are several required and optional dependencies that Blueflood uses. This page lists those dependencies and gives some instructions to install the dependencies:

Java

Blueflood is tested to run against Java 8.

Install Java 8 for Ubuntu/Debian
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
Install for OSX:

Download the JDK from the Oracle website and install:

Cassandra (Required)

Cassandra is a required dependency for ingestion, rollup and query. This is where Blueflood stores ALL of its data.

Blueflood works with many versions of Cassandra: 1.0, 1.1, 1.2, 2.0, and 2.1.

There is currently a change in Cassandra 2.2 that breaks our schema definition script, so we suggest Cassandra 2.1 for now.

Install Cassandra for Ubuntu/Debian
  1. Add Cassandra Repo

    echo "deb http://debian.datastax.com/community stable main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
    curl -L http://debian.datastax.com/debian/repo_key | sudo apt-key add -
    sudo apt-get update
    sudo apt-get install cassandra=2.1.1
    sudo service cassandra start
    
  2. Download and load latest Blueflood schema

    curl -s -O https://raw.githubusercontent.com/rackerlabs/blueflood/enums-feature/src/cassandra/cli/load.cdl
    cqlsh -f load.cdl
    

Elasticsearch (Required [pretty much])

Elasticsearch gives you the ability to discover metrics by running queries on your Elastic Search index.

While you could run without Elasticsearch, your ability to find metrics would be extremely rudimentary and would make most integrations with other tools useless.

Our instructions for installing Elasticsearch grew to the point where we put them on a separate page: Installing Elasticsearch

Zookeeper (Optional)

Zookeeper is an optional dependency used only by rollup nodes to coordinate work.

Each rollup node is responsible for managing one or more 'shards.' It is possible (recommended!) to configure your Blueflood cluster in such a way that multiple rollup nodes are responsible for the same shards. If a rollup node goes down, another rollup node will pick up the shards assigned to the downed node and roll up the metrics in those shards.

Zookeeper is used by nodes to claim active 'ownership' of a particular shard so that multiple nodes aren't rolling up the same data.

In the absense of Zookeeper (e.g., it is down or disabled by configuration), all nodes that own a particular shard will actively roll up metrics belonging to that shard.

git (Optional, required for development)

Probably if you made it this deep in our wiki, you'll know that you'll want git to do development. To be pedantic, here's how to install:

Ubuntu/Debian
sudo apt-get install git
OSX
brew install git

maven (Optional, required for development)

Ditto as with git, but to be complete:

Ubuntu/Debian
sudo apt-get install maven
OSX:
brew install maven

Clone this wiki locally