-
Notifications
You must be signed in to change notification settings - Fork 103
Deployment Dependencies
There are several required and optional dependencies that Blueflood uses. This page lists those dependencies and gives some instructions to install the dependencies:
Blueflood is tested to run against Java 8.
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
Download the JDK from the Oracle website and install:
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.
-
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 -
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 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 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.
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:
sudo apt-get install git
brew install git
Ditto as with git, but to be complete:
sudo apt-get install maven
brew install maven