Apache Cassandra, or simply Cassandra, is an open-source distributed database management system designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure.
Every Cassandra node in the cluster will have the same role. Data is distributed across the cluster, which means each node holds different data. Also, it supports replication and multi-datacenter replication for redundancy, failover, and disaster recovery.
Here, we will see how to install Apache Cassandra on Debian 11 / Debian 10.
Install Java
Update repository index.
sudo apt update
Apache Cassandra requires the latest version of Java 8. But, OpenJDK 8 is not available in Debian 11/10. Also, Cassandra 4.0 supports Java 11 (EXPERIMENTAL). So, we will use OpenJDK 11 in place of OpenJDK 8.
# Debian 11 sudo apt install -y openjdk-11-jre # Debian 10 sudo apt install -y openjdk-8-jre
Check the Java version post the installation of OpenJDK.
java -version
You will get similar output like below.
openjdk version "11.0.12" 2021-07-20 OpenJDK Runtime Environment (build 11.0.12+7-post-Debian-2) OpenJDK 64-Bit Server VM (build 11.0.12+7-post-Debian-2, mixed mode, sharing)
Add Apache Cassandra Repository
We will install Cassandra using the official Debian repository provided by Apache Software Foundation.
First, add the public key of the Cassandra repository to the system.
sudo apt install -y curl curl https://downloads.apache.org/cassandra/KEYS | sudo apt-key add -
Add Cassandra repository to your system with the below command.
echo "deb https://downloads.apache.org/cassandra/debian 40x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
Install Apache Cassandra on Debian
First, update the repository index.
sudo apt update
Then, install Cassandra with the below command.
sudo apt install -y cassandra
You can find Cassandra’s configuration files in /etc/cassandra and the logs and data are in /var/log/cassandra/ and /var/lib/cassandra, respectively.
Ensure Cassandra is up and running with the below command.
sudo systemctl status cassandra
You will get similar output like below.
● cassandra.service - LSB: distributed storage system for structured data Loaded: loaded (/etc/init.d/cassandra; generated) Active: active (running) since Sat 2021-08-28 12:22:57 CDT; 21min ago Docs: man:systemd-sysv-generator(8) Process: 5336 ExecStart=/etc/init.d/cassandra start (code=exited, status=0/SUCCESS) Tasks: 69 (limit: 2321) Memory: 1.3G CPU: 1min 7.794s CGroup: /system.slice/cassandra.service └─5461 java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss256k -XX:+AlwaysPreTouch -XX:-UseBiasedLocking -XX:+UseTLA> Aug 28 12:22:57 debian11.itzgeek.local systemd[1]: Starting LSB: distributed storage system for structured data... Aug 28 12:22:57 debian11.itzgeek.local systemd[1]: Started LSB: distributed storage system for structured data.
Verify Apache Cassandra Cluster
Wait for a minute to let the cluster comes online. Then, you can verify the Cassandra cluster by executing the below command.
sudo nodetool status
The below output confirms that the Cassandra cluster is up and running.
Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 69.05 KiB 16 100.0% fb0e8bf7-dcf4-41a6-96de-e8f230f1b797 rack1
Means,
U – Cluster is UPN – Cluster is Normal
Connect to the Cassandra cluster using the cqlsh command.
cqlsh
You are now connected to the cluster.
Connected to Test Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.0 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. cqlsh>
Sumber: disini