Installing and Configuring Cassandra
Installing Cassandra4
Complete this procedure for each Cassandra node.
Prerequisites
- For new deployments, we recommend Cassandra 4.1.x. The procedures below are meant to serve as a quick guide on how to do this. For more detailed information, see the Cassandra 4.1 documentation.
 - You have installed the latest supported openJDK 8.
 
Start
- Download the latest 4.1.x version of Cassandra.
 - Copy the Cassandra archive to the installation directory. For example, /usr/local
 - Use a tar utility to extract the files. For example, tar -zxvf apache-cassandra-4.1.9-bin.tar.gz
 - Add directories for data, commitlog, and saved_caches. You can create these directories anywhere or in the default locations configured in the Cassandra_install_dir/conf/cassandra.yaml file. For example:
- /var/lib/cassandra/data
 - /var/lib/cassandra/commitlog
 - /var/lib/cassandra/saved_caches
 
 
End
Configuring Cassandra4
The procedures below describe how to create the Cassandra keyspace for the following scenarios:
- Development: 1 Cassandra node (appropriate for a development or lab environment)
 - Single Datacenter: 1 datacenter with a minimum of three Cassandra nodes
 - Two Datacenters: 2 datacenters with a minimum of three Cassandra nodes
 
Prerequisites
Follow one of the procedures that matches your deployment scenario.
Development
Configuring Cassandra (1 Cassandra node)
Start
- Modify the cassandra.yaml file:
 - Set cluster_name to the desired name.
 - Set seeds to the list of host name of the node. For example: -seeds: “127.0.0.1”
 - Set listen_address and broadcast_address to the IP of the node.
 - Set data_file_directories, commitlog_directory, and saved_caches_directory to the directories you created in Step 4 of Installing Cassandra4.
 - Set the endpoint_snitch parameter to SimpleSnitch (for development only).
 - Save your changes and close the file.
 
End
Single Datacenter
Configuring Cassandra (1 datacenter)
Start
- Modify the cassandra.yaml file:
 - Set the cluster_name. It must be the same name on all nodes.
 - Set seeds to the list of host names of all nodes. For example: -seeds: "node1, node2, node3"
 - Set listen_address and broadcast_address to the IP of the node.
 - Set data_file_directories, commitlog_directory, and saved_caches_directory to the directories you created in Step 4 of Installing Cassandra4.
 - Set the start_rpc parameter to true.
 - Change endpoint_snitch to GossipingPropertyFileSnitch.
 - Save your changes and close the file.
 - Open the cassandra-rackdc.properties file and update for your cluster topology. For each node in your cluster, add the following line: 
dc=[datacenter] rack=[rackname]
Where:
- [datacenter] is the name of the datacenter for this node.
 - [rackname] is the name of the rack for this node.
 
The following is a sample cassandra-rackdc.properties file for a Single Datacenter scenario:
dc=datacenter1 rack=rack1
 - Save your changes and close the file.
 
End
Two Datacenters
Configuring Cassandra (2 datacenters)
Start
- Modify the cassandra.yaml file:
 - Set the cluster_name. It must be the same name on all nodes.
 - Set seeds to the list of host names of all nodes. For example: -seeds: "node1, node2, node3, node4, node5, node6"
 - Set listen_address and broadcast_address to the host name.
 - Set data_file_directories, commitlog_directory, and saved_caches_directory to the directories you created in Step 4 of Installing Cassandra4.
 - Change endpoint_snitch to GossipingPropertyFileSnitch.
 - Save your changes and close the file.
 - Open the cassandra-rackdc.properties file and update for your cluster topology. For each node in your cluster, add the following line: 
dc=[datacenter] rack=[rackname]
Where:
- [datacenter] is the name of the datacenter for this node.
 - [rackname] is the name of the rack for this node.
 
The following is a sample cassandra-rackdc.properties file for a Two Datacenter scenario:
For datacenter1 nodes:
dc=datacenter1 rack=rack1
For datacenter2 nodes:
dc=datacenter2 rack=rack1
 - Save your changes and close the file.
 
End
Verifying the Cassandra4 installation
Prerequisites
Start
- Start all Cassandra nodes using the following command: Cassandra_install_dir/bin/cassandra -R
 - Use the nodetool utility to verify that all nodes are connected by entering the following command:
Cassandra_install_dir/bin/nodetool status
The following is sample output for a Single Datacenter scenario with three Cassandra nodes:/genesys/apache-cassandra-4.1.4/bin$ ./nodetool status Address DC Rack Status State Load Owns Token 192.0.2.10 datacenter1 rack1 Up Normal 14.97 MB 100.00% -9223372036854775808 192.0.2.11 datacenter1 rack1 Up Normal 14.97 MB 100.00% -3074457345618258603 192.0.2.12 datacenter1 rack1 Up Normal 14.97 MB 100.00% 3074457345618258602
The following is sample output for a Development scenario with a single Cassandra node:
/genesys/apache-cassandra-4.1.4/bin$ ./nodetool status Address DC Rack Status State Load Effective-Ownership Token 127.0.0.1 datacenter1 rack1 Up Normal 1.89 MB 100.00% 76880863635469966884037445232169973201
 
End
Installing Cassandra2
Complete this procedure for each Cassandra node.
Prerequisites
- For new deployments, we recommend Cassandra 2.2. The procedures below are meant to serve as a quick guide on how to do this. For more detailed information, see the Cassandra 2.2 documentation.
 - You have installed the latest Java SE Development Toolkit 8. For more information, refer to the Java documentation.
 
Start
- Download the latest 2.2.x version of Cassandra.
 - Copy the Cassandra archive to the installation directory. For example, /usr/local
 - Use a tar utility to extract the files. For example, tar -zxvf apache-cassandra-2.2.7-bin.tar.gz
 - Add directories for data, commitlog, and saved_caches. You can create these directories anywhere or in the default locations configured in the Cassandra_install_dir/conf/cassandra.yaml file. For example:
- /var/lib/cassandra/data
 - /var/lib/cassandra/commitlog
 - /var/lib/cassandra/saved_caches
 
 
End
Configuring Cassandra2
The procedures below describe how to create the Cassandra keyspace for the following scenarios:
- Development: 1 Cassandra node (appropriate for a development or lab environment)
 - Single Datacenter: 1 datacenter with a minimum of three Cassandra nodes
 - Two Datacenters: 2 datacenters with a minimum of three Cassandra nodes
 
Prerequisites
Follow one of the procedures that matches your deployment scenario.
Development
Configuring Cassandra (1 Cassandra node)
Start
- Modify the cassandra.yaml file:
 - Set seeds to the list of host name of the node. For example: -seeds: “127.0.0.1”
 - Set listen_address and rpc_address to the host name.
 - Set data_file_directories, commitlog_directory, and saved_caches_directory to the directories you created in Step 4 of Installing Cassandra.
 - Set the start_rpc parameter to true.
 - Save your changes and close the file.
 
End
Single Datacenter
Configuring Cassandra (1 datacenter)
Start
- Modify the cassandra.yaml file:
 - Set the cluster_name. It must be the same name on all nodes.
 - Set seeds to the list of host names of all nodes. For example: -seeds: "node1, node2, node3"
 - Set listen_address and rpc_address to the host name.
 - Set data_file_directories, commitlog_directory, and saved_caches_directory to the directories you created in Step 4 of Installing Cassandra.
 - Set the start_rpc parameter to true.
 - Change endpoint_snitch to PropertyFileSnitch.
 - Save your changes and close the file.
 - Open the cassandra-topology.properties file and update for your cluster topology. For each node in your cluster, add the following line: 
[node]=[datacenter]:[rack]
Where:
- [node] is the IP address of the node.
 - [datacenter] is the name of the datacenter for this node.
 - [rack] is the name of the rack for this node.
 
The following is a sample cassandra-topology.properties file for a Single Datacenter scenario:
192.0.2.10=datacenter1:rack1 192.0.2.11=datacenter1:rack1 192.0.2.12=datacenter1:rack1
 - Save your changes and close the file.
 
End
Two Datacenters
Configuring Cassandra (2 datacenters)
Start
- Modify the cassandra.yaml file:
 - Set the cluster_name. It must be the same name on all nodes.
 - Set seeds to the list of host names of all nodes. For example: -seeds: "node1, node2, node3, node4, node5, node6"
 - Set listen_address and rpc_address to the host name.
 - Set data_file_directories, commitlog_directory, and saved_caches_directory to the directories you created in Step 4 of Installing Cassandra.
 - Set the start_rpc parameter to true.
 - Change endpoint_snitch to PropertyFileSnitch.
 - Save your changes and close the file.
 - Open the cassandra-topology.properties file and update for your cluster topology. For each node in your cluster, add the following line: 
[node]=[datacenter]:[rack]
Where:
- [node] is the IP address of the node.
 - [datacenter] is the name of the datacenter for this node.
 - [rack] is the name of the rack for this node.
 
The following is a sample cassandra-topology.properties file for a Two Datacenter scenario:
192.0.2.10=datacenter1:rack1 192.0.2.11=datacenter1:rack1 192.0.2.12=datacenter1:rack1 198.51.100.10=datacenter2:rack1 198.51.100.11=datacenter2:rack1 198.51.100.12=datacenter2:rack1
 - Save your changes and close the file.
 
End
Verifying the Cassandra2 installation
Prerequisites
Start
- Start all Cassandra nodes using the following command: Cassandra_install_dir/bin/cassandra
 - Use the nodetool utility to verify that all nodes are connected by entering the following command:
Cassandra_install_dir/bin/nodetool -h Cassandra_host ring
The following is sample output for a Single Datacenter scenario with three Cassandra nodes:/genesys/apache-cassandra-2.2/bin$ ./nodetool ring Address DC Rack Status State Load Owns Token 192.0.2.10 datacenter1 rack1 Up Normal 14.97 MB 100.00% -9223372036854775808 192.0.2.11 datacenter1 rack1 Up Normal 14.97 MB 100.00% -3074457345618258603 192.0.2.12 datacenter1 rack1 Up Normal 14.97 MB 100.00% 3074457345618258602
The following is sample output for a Development scenario with a single Cassandra node:
/genesys/apache-cassandra-2.2/bin$ ./nodetool ring Address DC Rack Status State Load Effective-Ownership Token 127.0.0.1 datacenter1 rack1 Up Normal 1.89 MB 100.00% 76880863635469966884037445232169973201
 
End
