Configuration Guide

Whirr is configured using a properties file, and optionally using command line arguments when using the CLI. Command line arguments take precedence over properties specified in a properties file.

Name Command line option Default Description
whirr.config --config none A filename of a properties file containing properties in this table. Note that Whirr properties specified in this file all have a whirr. prefix.
whirr.service-name --service-name The default service for launching clusters The name of the service to use. You only need to set this if you want to use a non-standard service launcher.
whirr.cluster-name --cluster-name none The name of the cluster to operate on. E.g. hadoopcluster. The cluster name is used to tag the instances in some cloud-specific way. For example, in Amazon it is used to form the security group name.
whirr.instance-templates --instance-templates none The number of instances to launch for each set of roles in a service. E.g. 1 nn+jt,10 dn+tt means one instance with the roles nn (namenode) and jt (jobtracker), and ten instances each with the roles dn (datanode) and tt (tasktracker).
whirr.provider --provider ec2 The name of the cloud provider. See the table below for possible provider names.
whirr.identity --identity none The cloud identity. See the table below for how this maps to the credentials for your provider.
whirr.credential --credential none The cloud credential. See the table below for how this maps to the credentials for your provider.
whirr.private-key-file --private-key-file ~/.ssh/id_rsa The filename of the private RSA SSH key used to connect to instances. Note: the public/private key must be set together, and must be passwordless.
whirr.public-key-file --public-key-file ~/.ssh/id_rsa.pub The filename of the public RSA SSH key used to connect to instances. Note: the public/private key must be set together, and must be passwordless.
whirr.image-id --image-id none The ID of the image to use for instances. If not specified then a vanilla Linux image is chosen.
whirr.hardware-id --hardware-id none The type of hardware to use for the instance. This must be compatible with the image ID.
whirr.location-id --location-id none The location to launch instances in. If not specified then an arbitrary location will be chosen.
whirr.client-cidrs --client-cidrs none A comma-separated list of CIDR blocks. E.g. 208.128.0.0/11,108.128.0.0/11
whirr.run-url-base --run-url-base http://whirr.s3.amazonaws.com/VERSION/ The base URL for forming run urls from. Change this to host your own set of launch scripts, as explained in the FAQ.

Cloud provider specific configuration

Compute Service Provider whirr.provider whirr.identity whirr.credential Notes
Amazon EC2 ec2 Access Key ID Secret Access Key Used to form security Group (via jclouds tag)
Rackspace Cloud Servers cloudservers Username API Key

Comparison with Python

See Using Command Line Options.

Python Java Notes
config-dir whirr.config
service whirr.service-name
none whirr.cluster-name Specified as a positional argument on the Python CLI.
none whirr.instance-templates Specified as a positional arguments on the Python CLI.
cloud-provider whirr.provider
none whirr.identity Specified using environment variables for Python. E.g. AWS_ACCESS_KEY_ID, RACKSPACE_KEY
none whirr.credential Specified using environment variables for Python. E.g. AWS_ACCESS_KEY_ID, RACKSPACE_SECRET
private-key whirr.private-key-file
public-key whirr.public-key-file
client-cidr whirr.client-cidrs Python's client-cidr option may be repeated multiple times, whereas Java's whirr.client-cidrs contains comma-separated CIDRs.
none whirr.run-url-base Specified using user-data-file in Python.
image-id whirr.image-id
instance-type whirr.hardware-id
availability-zone whirr.location-id Location is more general than availability zone.
security-group none Amazon-specific. However, Amazon users may wish to start a cluster in additional security groups, which isn't currently supported in Java.
env none May not be needed in Java with runurls.
user-data-file none Amazon-specific. Use runurls.
key-name none Amazon-specific. Jclouds generates a new key for clusters.
user-packages none Implement by allowing arbitrary runurls.
auto-shutdown none Implement by allowing arbitrary runurls.
ssh-options none Jclouds handles SSH, so not needed in Java.