## Cassandra 2.x Cluster on AWS EC2 #### Install java 8 ```bash # Remove java 7 sudo yum remove -y java # Install basic packages sudo yum install -y git # Download and install java 8 wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.tar.gz" tar -xzvf jdk-8u45-linux-x64.tar.gz rm -rf jdk-8u45-linux-x64.tar.gz # Configure JAVA_HOME sudo vim ~/.bashrc ``` ```bash alias cls='clear' export JAVA_HOME=~/jdk1.8.0_45 export JRE_HOME=~/jdk1.8.0_45/jre export PATH=$PATH:~/jdk1.8.0_45/bin:/~/jdk1.8.0_45/jre/bin ``` ```bash source ~/.bashrc java -version ``` #### Cassandra 2.x ```bash wget https://archive.apache.org/dist/cassandra/2.1.9/apache-cassandra-2.1.9-bin.tar.gz tar -xzvf apache-cassandra-2.1.9-bin.tar.gz rm -rf apache-cassandra-2.1.9-bin.tar.gz ``` #### Configure the Clsuter ```bash # your_server_ip - copy the IP hostname -i vim ~/apache-cassandra-2.1.9/conf/cassandra.yaml ``` ```yaml cluster_name: 'Test Cluster' listen_address: your_server_ip rpc_address: your_server_ip seed_provider: - class_name: org.apache.cassandra.locator.SimpleSeedProvider parameters: - seeds: "ip1,ip2,...ipN" endpoint_snitch: GossipingPropertyFileSnitch ``` #### Start up the cluster ```bash # on each cass node... cd ~/apache-cassandra-2.1.9 bin/cassandra start ``` #### Open EC2 Security Group ports ```bash 7000 9160 9042 ``` #### Test data replication with CQLSH ```bash # Connect to any node - you can run: hostname -i to get the IP apache-cassandra-2.1.9/bin/cqlsh IP ``` ```bash CREATE KEYSPACE CLUSTER_TEST WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 }; USE CLUSTER_TEST; CREATE TABLE TEST ( key text PRIMARY KEY, value text); INSERT INTO TEST (key,value) VALUES ('1', 'works'); SELECT * from TEST; ``` ```bash # Connect to any other node - you can run: hostname -i to get the IP - check for data replication apache-cassandra-2.1.9/bin/cqlsh IP USE CLUSTER_TEST; SELECT * from TEST; ```