Fast tool to deploy Storm on Amazon EC2, written entirely in Java. Download latest stable release here.
Please don't hesitate to contact me. Your feedback will help to further improve this tool.
I am working on adding support for deploying on Apache CloudStack. I have had to change the credential specification a bit. When updating to the newest version, please change your credential.yaml according to credential_example.yaml.
- Runs Storm and Zookeeper daemons under supervision (automatically restarted in case of failure)
- Only fetch and compile what is needed (can deploy on prepared images in a few minutes)
- Supports executing user-defined commands both pre-config and post-config
- Automatically sets up s3cmd, making it easy to get/put files on Amazon S3
- Automatically sets up Ganglia, making it easy to monitor performance
- Automatically sets up Amazon EC2 AMI Tools on new nodes
- Supports Zookeeper versions: 3.3.3 & 3.4.5
- Supports Storm versions: 0.8.2 & 0.9.0.1
This tool, requires two configurationfiles: conf/credential.yaml
and conf/configuration.yaml
. Put your credentials into the file conf/credential.yaml
.
Below is an example of a single cluster configuration, for conf/configuration.yaml
mycluster:
- m1.medium {ZK, WORKER, MASTER, UI}
- m1.medium {WORKER}
- storm-version "0.8.2"
- zk-version "3.3.3"
- image "eu-west-1/ami-480bea3f" #official Ubuntu 13.10 AMI
- region "eu-west-1"
- exec-preconfig {cd ~, echo hey > hey.txt}
- exec-postconfig {}
- WORKER is the Storm Supervisor daemon
- MASTER is the Storm Nimbus daemon
- UI is the Storm and Ganglia User-Interface
- ZK is the Zookeeper daemon
Please ensure the image resides in the same region as specified.
Execute java -jar storm-deploy-alternative.jar deploy CLUSTER_NAME
After successful deployment, a small file is written to $HOME/.storm/, which allows you to interact with the cluster directly from the bin/storm script. For details on how to use the bin/storm script, please refer to the Storm wiki.
Execute java -jar storm-deploy-alternative.jar kill CLUSTER_NAME
Kills all nodes belonging in the cluster with name CLUSTER_NAME.
Execute java -jar storm-deploy-alternative.jar attach CLUSTER_NAME
Attaches the bin/storm
script to a cluster with name CLUSTER_NAME.
Execute java -jar storm-deploy-alternative.jar scaleout CLUSTER_NAME #NumInstances INSTANCE_TYPE
Adds new worker instances to an already running cluster. For example, you could execute java -jar storm-deploy-alternative.jar scaleout test 2 m1.medium
, to add two new instances of the type m1.medium to the cluster called test. When completed, you can see the new nodes in the Storm UI.
- I am seeing the error:
net.schmizz.sshj.userauth.UserAuthException: publickey auth failed
. This error means the software could not connect to the newly launched instances using SSH (for configuring them). There can be multiple reasons why this error happens. Please ensure you have ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub and that both files are valid. Furthermore, please go to AWS EC2 interface -> Key Pairs, and delete the jclouds#CLUSTER_NAME keypair. If deploying the same cluster, using multiple machines, please ensure the same keypair exists on all machines. In case problems persist, please try generating a new keypair by executingssh-keygen -t rsa
, then delete old keypair from AWS EC2 interface and retry deployment. - I am seeing the warning:
cipher strengths apparently limited by JCE policy
. You can improve your security by installing Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files.
Currently, only deploying to Ubuntu AMIs on Amazon EC2 is supported.