This is a POC version of managing Cassandra cluster via Cloudera Manager.
- Python 2.7+ (to create parcel's manifest)
- Maven
- Cloudera's cm_ext (a tool for making CM parcels and CSDs). Install it on your workstation like so:
mkdir -p ~/github; cd ~/github
git clone https://github.com/cloudera/cm_ext; cd cm_ext
mvn package
Tested on CentOS 6.5, Cloudeta Manager 5.6.0 (newer versions like 5.7 etc not tested), Datastax Cassandra 2.2.6.
- Create the DATASTAX_CASSANDRA parcel:
./build_parcel.sh <Version> <Distro>
. Example:./build_parcel.sh 2.2.6 el6
- Serve the parcel:
./serve-parcel.sh
- In CM, add your machine to the list of
Remote Parcel Repository URLs
and clickCheck for New Parcels
. - Download, Distribute, Activate. No need to restart the cluster as this parcel is not a dependency for any service.
- Create the CSD:
./build_csd.sh <Version>
. Example:./build_csd.sh 1.0
. The CSD version is independent of the parcel version. - Copy the CSD jar (
DATASTAX-CASSANDRA-1.0.jar
) to CM host at/opt/cloudera/csd/
and change the ownership of the jar tocloudera-scm:cloudera-scm
- Restart CM
service cloudera-scm-server restart
- Restart Cloudera Management Service from the CM UI.
- Install the Cassandra service with Add a service option in CM (note that some workaround in the cluster installation is needed as for now - you may add only 1 seed during initial service startup)
Note: Step 3 and 4 can be avoided by using the experimental api for installing CSDs without restarting CM.
- Rolling Cassandra start - start seeds one by one, wait for seeds to start, start rest of nodes
- Rolling restart - done in service.sdl but requires Cloudera Enterprise license
- Node decommissionin
- Remove node from a cluster
- Add Max heap and New Size JVM options
- Add gracefull service stop
- Add JMX security settings for using JXM not only on localhost
- Add Cassandra ring status and health checks as separate commands
- Add parameters for multi-datacenter and cross-rack support (now there is a hardcode to dc1 and rack1)
- Add optional command to bootstrap individual nodes