Apache Cassandra è un database NoSQL open source. Una delle sue caratteristiche principali è la sua natura decentralizzata che offre una tolleranza agli errori unica. Avere i nostri dati replicati tra i datacenter significa che la nostra produzione non subirà la perdita di uno dei nostri siti, cosa che tutti gli amministratori di sistema sognano (o sono davvero felici di avere una tale configurazione).
In questo tutorial installeremo Cassandra su Red Hat Enterprise Linux 8 aggiungendo il repository Cassandra, installeremo il software e configureremo tutto il resto necessario per avere il nostro servizio attivo, funzionante e facile da gestire.
In questo tutorial imparerai:
- Come aggiungere il repository Cassandra
- Come installare i pacchetti necessari
- Come riparare il file dell'unità systemd
- Come testare Cassandra con cqlsh

Requisiti e convenzioni software utilizzati
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | Red Hat Enterprise Linux 8 |
Software | Apache Cassandra 3.11 |
Altro | Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando. |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato |
Come installare cassandra su Redhat 8 istruzioni passo passo
Red Hat Enterprise Linux utilizza pacchetti basati su rpm e Apache Cassandra fornisce un repository rpm. Sebbene non tutte le dipendenze siano incluse, i problemi che devono essere risolti non sono una seccatura. Tutto ciò di cui abbiamo bisogno è Java 8 (OpenJDK o Oracle JDK) installato in anticipo.
- Installeremo Cassandra dal repository ufficiale di Apache. Per poterlo fare, creiamo un file di testo
/etc/yum.repos.d/cassandra.repo
con il seguente contenuto:[cassandra] name=Apache Cassandra baseurl=https://www.apache.org/dist/cassandra/redhat/311x/ gpgcheck=1 repo_gpgcheck=1 gpgkey=https://www.apache.org/dist/cassandra/KEYS
- Con la definizione del repository in atto, possiamo installare Cassandra con
dnf
:# dnf install cassandra
L'installazione chiederà di accettare le chiavi degli sviluppatori. Poiché confidiamo che non pubblichino qualcosa di complicato, accetteremo le chiavi per procedere con l'installazione.
- Il pacchetto installato include lo script init per SysV e
systemd
è in grado di generare un file di servizio per se stesso, tuttavia non funziona bene. Per salvarci da un po' di tentativi per errore, creiamo un nuovo semplice file di servizio/etc/systemd/system/cassandra.service
con il seguente contenuto:[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
systemd
è necessario ricaricare per essere a conoscenza della nuova definizione del servizio:# systemctl daemon-reload
- Ora possiamo gestire il nostro servizio con systemd. Possiamo avviare, interrompere e ottenere lo stato di Cassandra:
# systemctl start|stop|status cassandra
Lo stato di esecuzione dovrebbe fornire qualcosa di simile all'output seguente con il file unit creato sopra:
# systemctl status cassandra cassandra.service - Apache Cassandra Loaded: loaded (/etc/systemd/system/cassandra.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2019-01-08 18:39:32 CET; 24s ago Main PID: 6615 (java) Tasks: 58 (limit: 12544) Memory: 1.1G CGroup: /system.slice/cassandra.service 6615 java -Xloggc:/var/log/cassandra/gc.log -ea [...]
- Opzionalmente possiamo abilitare l'avvio automatico all'avvio:
# systemctl enable cassandra
- Per eseguire alcune query di esempio per testare il funzionamento del sistema di gestione del database, utilizzeremo
cqlsh
per accedere alla shell CQL. Questo strumento viene fornito con l'installazione, tuttaviapython
questo strumento dipende non. Dovremo installarlo condnf
:# dnf install python2
- Per eseguire una query di esempio su Cassandra, possiamo inserire la shell CQL:
# cqlsh Connected to Test Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.11.3 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. cqlsh>
- Poiché i dati utente non sono ancora inseriti nel database, interrogheremo alcuni dati dalle tabelle di sistema per verificare che la nostra installazione funzioni correttamente:
cqlsh> SELECT keyspace_name, table_name FROM system_schema.tables where keyspace_name = 'system_auth'; keyspace_name | table_name ---------------+-------------------------------- system_auth | resource_role_permissons_index system_auth | role_members system_auth | role_permissions system_auth | roles (4 rows)