Apache Cassandra è un sistema di gestione di database NoSQL open source ad alte prestazioni senza un singolo punto di errore. Apache Cassandra utilizza un modello di cluster invece utilizza il modello di tabella visto in MySQL/PostgreSQL. Cassandra è adatto per applicazioni che non possono permettersi di perdere dati. I dati vengono replicati automaticamente su più nodi per la tolleranza agli errori. I nodi guasti possono essere sostituiti automaticamente senza tempi di inattività.
Apache Cassandra è la scelta migliore per te se cerchi scalabilità, disponibilità elevata e prestazioni elevate.
In questo tutorial, ti mostreremo come installare Apache Cassandra su CentOS 8.
Requisiti
- Un server che esegue CentOS 8 con un minimo di 2 GB di RAM.
- Sul tuo sistema è impostata una password di root.
Per iniziare
Prima di iniziare, si consiglia di aggiornare il server all'ultima versione stabile. Puoi aggiornare il tuo server con il seguente comando:
dnf update
Una volta aggiornato il server, riavvialo per applicare le modifiche.
Installa Java
Apache Cassandra richiede l'installazione di OpenJDK 8 e Python2 sul sistema. Puoi installare OpenJDK 8 e Python2 usando il seguente comando:
dnf install java-1.8.0-openjdk-devel python2
Una volta installati entrambi i pacchetti, puoi verificare la versione Java utilizzando il seguente comando:
java -version
Dovresti vedere il seguente output:
openjdk version "1.8.0_232" OpenJDK Runtime Environment (build 1.8.0_232-b09) OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
Installa Apache Cassandra
Per impostazione predefinita, Apache Cassandra non è disponibile nel repository predefinito di CentOS 8. Quindi dovrai creare un repository per quello. Puoi creare un nuovo file repo /etc/yum.repos.d/cassandra.repo come mostrato di seguito:
nano /etc/yum.repos.d/cassandra.repo
Aggiungi le seguenti righe:
[cassandra] name = DataStax Repo for Apache Cassandra baseurl = http://rpm.datastax.com/community enabled = 1 gpgcheck = 0
Salva e chiudi il file, quindi installa Apache Cassandra con il seguente comando:
dnf install dsc20
Una volta terminata l'installazione, puoi procedere al passaggio successivo
Crea un file di unità di sistema per Cassandra
Per impostazione predefinita, il pacchetto Apache Cassandra non è in grado di generare un file di servizio per se stesso. Quindi dovrai creare un file di servizio systemd per gestire il servizio Cassandra. Puoi crearlo con il seguente comando:
nano /etc/systemd/system/cassandra.service
Aggiungi le seguenti righe:
[Unit] Description=Apache Cassandra After=network.target [Service] PIDFile=/var/run/cassandra/cassandra.pid User=cassandra Group=cassandra ExecStart=/usr/sbin/cassandra -f -p /var/run/cassandra/cassandra.pid Restart=always [Install] WantedBy=multi-user.target
Salva e chiudi il file. Quindi, ricarica il demone systemd con il seguente comando:
systemctl daemon-reload
Quindi, avvia il servizio Cassandra e abilitalo all'avvio dopo il riavvio del sistema con il seguente comando:
systemctl start cassandra
systemctl enable cassandra
Puoi anche controllare lo stato del servizio Cassandra con il seguente comando:
systemctl status cassandra
Dovresti vedere il seguente output:
? cassandra.service - Apache Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2019-12-07 01:25:26 EST; 1min 51s ago Main PID: 1888 (java) Tasks: 53 (limit: 25044) Memory: 272.7M CGroup: /system.slice/cassandra.service ??1888 java -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar -XX:+CMSClassUnloadingEnabled -XX:+UseThreadPriorities -XX:Threa> Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,054 Writing [email protected](10104/101040 serialized/live bytes, 259 ops) Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,118 Completed flushing /var/lib/cassandra/data/system/local/system-local-jb-4-Data.db > Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,124 Compacting [SSTableReader(path='/var/lib/cassandra/data/system/local/system-local-> Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,169 Node localhost/127.0.0.1 state jump to normal Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,294 Compacted 4 sstables to [/var/lib/cassandra/data/system/local/system-local-jb-5,].> Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,322 Starting listening for CQL clients on localhost/127.0.0.1:9042... Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,376 Using TFramedTransport with a max frame size of 15728640 bytes. Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,378 Binding thrift service to localhost/127.0.0.1:9160 Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,391 Using synchronous/threadpool thrift server on localhost : 9160 Dec 07 01:25:29 centos8 cassandra[1888]: INFO 01:25:29,422 Listening for thrift clients...
Verifica l'installazione di Apache Cassandra
Apache Cassandra è ora installato e in esecuzione sul tuo server. Puoi verificarlo se è in esecuzione o meno con il seguente comando:
nodetool status
Dovresti vedere il seguente comando:
Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 46.11 KB 256 100.0% 2a680007-8c30-4bde-9a3f-9fa212b96d11 rack1
Configura Apache Cassandra
Per impostazione predefinita, Cassandra è configurata per accettare la connessione solo dall'host locale.
Puoi anche accedere a Cassandra tramite Cassandra Query Language. Per accedere alla shell CQL, eseguire il comando seguente:
cqlsh
Dovresti vedere il seguente output:
Connected to Test Cluster at localhost:9160. [cqlsh 4.1.1 | Cassandra 2.0.17 | CQL spec 3.1.1 | Thrift protocol 19.39.0] Use HELP for help. cqlsh>
Nell'output sopra, dovresti vedere che il cluster Cassandra è chiamato "Test Cluster". Puoi anche modificare questo nome cluster predefinito.
Per farlo, accedi alla shell CQL con il seguente comando:
cqlsh
Quindi, esegui il comando seguente per modificare il nome del cluster in "HowtoForge Cluster" come mostrato di seguito:
cqlsh> UPDATE system.local SET cluster_name = 'HowtoForge Cluster' WHERE KEY = 'local';
Quindi, esci dalla shell con il seguente comando:
cqlsh>exit;
Successivamente, dovrai anche modificare il file di configurazione cassandra.yaml e definire il tuo nuovo nome cluster:
nano /etc/cassandra/default.conf/cassandra.yaml
Modifica la seguente riga:
cluster_name: 'HowtoForge Cluster'
Salva e chiudi il file quando hai finito. Quindi, svuota la cache di sistema con il seguente comando:
nodetool flush system
Infine, riavvia il servizio Apache Cassandra per applicare la nuova configurazione:
systemctl restart cassandra
Ora, accedi alla shell CQL con il seguente comando:
cqlsh
Dovresti vedere che il nome del cluster è ora cambiato in "HowtoForge Cluster":
Connected to HowtoForge Cluster at localhost:9160. [cqlsh 4.1.1 | Cassandra 2.0.17 | CQL spec 3.1.1 | Thrift protocol 19.39.0] Use HELP for help. cqlsh>
Conclusione
Congratulazioni! hai installato e configurato correttamente Apache Cassandra su CentOS 8. Non esitare a chiedermi se hai domande.