Come installare Apache Cassandra su AlmaLinux/Rocky Linux 8
Su questa pagina
- Prerequisiti
- Passaggio 1 - Installa Java
- Passaggio 2 - Installa Apache Cassandra
- Passaggio 3 - Installa Cqlsh
- Passaggio 4 - Crea un file Systemd Unit per Cassandra
- Passaggio 5 - Configura Cassandra
- 5.1 Abilitare l'autenticazione dell'utente
- 5.1.1 - Aggiunta di un amministratore con privilegi avanzati
- 5.2 - Modifica il file di configurazione della console
- 5.3 - Rinomina il cluster
Apache Cassandra è un sistema di gestione di database distribuiti NoSQL open source. Cassandra può essere scalata orizzontalmente aggiungendo più nodi attraverso i quali i dati vengono replicati automaticamente. I nodi possono essere aggiunti o rimossi senza tempi di inattività. I nodi possono essere organizzati logicamente come un cluster o un anello e configurati su più data center per migliorare la velocità e l'affidabilità delle applicazioni ad alte prestazioni.
In questo tutorial impareremo come installare Apache Cassandra su AlmaLinux e Rocky Linux 8 OS. I comandi per entrambi i sistemi operativi saranno identici se non diversamente specificato.
Prerequisiti
-
A Server running AlmaLinux or Rocky Linux with a minimum of 2GB of RAM.
-
A non-sudo user with root privileges.
-
Everything is updated.
$ sudo dnf update
Passaggio 1: installa Java
Apache Cassandra richiede Java 8 per funzionare. L'ultima versione di Cassandra include il supporto sperimentale per Java 11, ma per il nostro tutorial continueremo a utilizzare Java 8.
$ sudo dnf install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Conferma l'installazione di Java.
$ java -version openjdk version "1.8.0_312" OpenJDK Runtime Environment (build 1.8.0_312-b07) OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
Passo 2 - Installa Apache Cassandra
Il primo passo è aggiungere il repository ufficiale di Cassandra.
Esegui il seguente comando per creare il file repository
/etc/yum.repos.d/cassandra.repo
e inserisci i dettagli.$ sudo tee /etc/yum.repos.d/cassandra.repo <<EOF > [cassandra] > name=Apache Cassandra > baseurl=https://www.apache.org/dist/cassandra/redhat/40x/ > gpgcheck=1 > repo_gpgcheck=1 > gpgkey=https://www.apache.org/dist/cassandra/KEYS > EOF
Ora che il file repository è stato creato installa, Cassandra.
$ sudo dnf install cassandra -y
Passo 3 - Installa Cqlsh
Useremo lo strumento CQL Shell (cqlsh) per interagire con Cassandra. Lo strumento è compatibile con Python 2.7 o Python 3.6+. Per il nostro tutorial, useremo Python 3.8. Installa Python 3.8.
$ sudo dnf install python38
Imposta Python 3.8 come versione predefinita di Python.
$ sudo update-alternatives --config python There are 3 programs which provide 'python'. Selection Command ----------------------------------------------- *+ 1 /usr/libexec/no-python 2 /usr/bin/python3 3 /usr/bin/python3.8 Enter to keep the current selection[+], or type selection number: 3
Ti verranno presentate più opzioni. Sceglieremo il numero 3 per impostare Python 3.8 come versione predefinita nel nostro caso.
Conferma l'installazione di Python.
$ python --version Python 3.8.8
Dopo aver utilizzato l'utilità
update-alternatives
, non è necessario utilizzare il comandopython3
.Installa cqlsh usando il gestore di pacchetti pip Python.
$ pip3 install --user cqlsh
Conferma l'installazione di cqlsh.
$ cqlsh --version cqlsh 6.0.0
Passaggio 4: creare un file Systemd Unit per Cassandra
Crea e apri
/etc/systemd/system/cassandra.service
per la modifica.$ sudo nano /etc/systemd/system/cassandra.service
Incolla il seguente codice al suo interno.
[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 il file premendo Ctrl + X e inserendo Y quando richiesto.
Ricarica il demone del servizio.
$ sudo systemctl daemon-reload
Abilita e avvia il servizio Cassandra.
$ sudo systemctl enable cassandra --now
Controlla lo stato del servizio.
$ sudo systemctl status cassandra ? cassandra.service - Apache Cassandra Loaded: loaded (/etc/systemd/system/cassandra.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2021-12-30 11:07:43 UTC; 12s ago Main PID: 4679 (java) Tasks: 48 (limit: 23696) Memory: 1.3G CGroup: /system.slice/cassandra.service ??4679 /usr/bin/java -ea -da:net.openhft... -XX:+UseThreadPriorities -XX:+HeapDumpOnOutOfMemoryError -Xss256>
Puoi anche verificare lo stato usando il comando
nodetool
.$ nodetool status Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 127.0.0.1 69.09 KiB 16 100.0% 2fe7ccae-2af9-4841-9bff-bffa29f10dc5 rack1
Passaggio 5: configurare Cassandra
La posizione predefinita dei file di configurazione per Cassandra è
/etc/cassandra
. La posizione predefinita per le directory di log e dati è/var/log/cassandra
e/var/lib/cassandra
.Le impostazioni a livello di JVM come la dimensione dell'heap possono essere impostate tramite il file
/etc/cassandra/conf/cassandra-env.sh
. Puoi passare ulteriori argomenti della riga di comando JVM alla variabileJVM_OPTS
. Gli argomenti vengono passati a Cassandra all'avvio.5.1 Abilitare l'autenticazione dell'utente
Per abilitare l'autenticazione dell'utente, prima esegui un backup del file
/etc/cassandra/conf/cassandra.yaml
.$ sudo cp /etc/cassandra/conf/cassandra.yaml /etc/cassandra/conf/cassandra.yaml.backup
Apri il file
cassandra.yaml
per la modifica.$ sudo nano /etc/cassandra/conf/cassandra.yaml
Individuare i seguenti parametri in questo file.
authenticator: AllowAllAuthenticator authorizer: AllowAllAuthorizer roles_validity_in_ms: 2000 permissions_validity_in_ms: 2000
Modificare i valori dei parametri come indicato di seguito.
. . . authenticator: org.apache.cassandra.auth.PasswordAuthenticator authorizer: org.apache.cassandra.auth.CassandraAuthorizer roles_validity_in_ms: 0 permissions_validity_in_ms: 0 . . .
È possibile configurare altre impostazioni in base alle proprie esigenze. Se sono commentati, decommentarli.
Una volta terminato, salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Riavvia Cassandra per abilitare le impostazioni modificate.
$ sudo systemctl restart cassandra
5.1.1 - Aggiunta di un Superutente amministratore
Ora che abbiamo abilitato l'autenticazione, dobbiamo creare un utente. Per fare ciò, utilizzeremo l'utilità della shell Cassandra Command. Accedi con le credenziali dell'utente predefinito
cassandra
.$ cqlsh -u cassandra -p cassandra
Crea un nuovo superutente. Sostituisci
[username]
e[yourpassword]
con le tue credenziali.> CREATE ROLE [username] WITH PASSWORD = '[yourpassword]' AND SUPERUSER = true AND LOGIN = true;
Disconnettersi.
> exit
Accedi nuovamente con il nuovo account di superutente.
$ cqlsh -u username -p yourpassword
Rimuovi i permessi elevati dall'account
cassandra
predefinito.> ALTER ROLE cassandra WITH PASSWORD = 'cassandra' AND SUPERUSER = false AND LOGIN = false; > REVOKE ALL PERMISSIONS ON ALL KEYSPACES FROM cassandra;
Concedi tutte le autorizzazioni all'account superutente.
> GRANT ALL PERMISSIONS ON ALL KEYSPACES TO '[username]';
Disconnettersi.
> exit
5.2 - Modifica il file di configurazione della console
Se vuoi personalizzare Cassandra Shell, puoi farlo modificando il file
cqlshrc
. La posizione predefinita per il file è nella directory~/.cassandra
. Se vuoi caricarlo da una directory diversa, puoi passare l'argomento--cqlshrc /customdirectory
allo strumentocqlsh
durante l'esecuzione.Puoi trovare un file di esempio in
/etc/cassandra/conf/cqlshrc.sample
contenente tutte le impostazioni che puoi configurare riguardo a Cassandra Shell.Copia e rinomina il file di esempio nella directory
~/.cassandra
.$ sudo cp /etc/cassandra/conf/cqlshrc.sample ~/.cassandra/cqlshrc
Aggiorna il file
cqlshrc
con le autorizzazioni richieste.$ sudo chmod 600 ~/.cassandra/cqlshrc $ sudo chown $USER:$USER ~/.cassandra/cqlshrc
Apri il file per la modifica.
$ nano ~/.cassandra/cqlshrc
Configureremo la shell per accedere automaticamente con le credenziali di superutente. Trova la sezione seguente e compilala con il tuo nome utente e password.
.... [authentication] ;; If Cassandra has auth enabled, fill out these options username = [superuser] password = [password] ....
Modifica qualsiasi altra impostazione che desideri modificare. Alcune delle impostazioni sono commentate usando
;;
. Decommentali rimuovendo il doppio punto e virgola e quindi apporta la modifica.Una volta terminato, salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Accedi alla shell Cassandra con le tue nuove modifiche.
$ cqlsh Connected to Test Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. >
5.3 - Rinominare il Cluster
Infine, rinomineremo il nome del cluster da Test Cluster al nome scelto.
Accedi al terminale
cqlsh
.$ cqlsh
Sostituisci
[clustername]
con il tuo nuovo nome cluster nel comando seguente.> UPDATE system.local SET cluster_name = '[new_name]' WHERE KEY = 'local';
Esci dal guscio
> exit
Apri il file
/etc/cassandra/conf/cassandra.yaml
per la modifica.$ sudo nano /etc/cassandra/conf/cassandra.yaml
Sostituisci il valore della variabile
cluster_name
con il nome che preferisci.... # The name of the cluster. This is mainly used to prevent machines in # one logical cluster from joining another. cluster_name: '[new_name]' ...
Una volta terminato, salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Svuota la cache del sistema Cassandra.
$ nodetool flush system
Riavvia Cassandra.
$ sudo systemctl restart cassandra
Accedi alla shell per vedere il nuovo nome.
$ cqlsh Connected to HowtoForge Cluster at 127.0.0.1:9042 [cqlsh 6.0.0 | Cassandra 4.0.1 | CQL spec 3.4.5 | Native protocol v5] Use HELP for help. >
Conclusione
In questo tutorial, hai imparato come installare Apache Cassandra su un server AlmaLinux o Rocky Linux. Hai anche imparato come aggiungere l'autenticazione utente ed eseguire alcune configurazioni di base. Per saperne di più, visita la documentazione ufficiale di Cassandra. Se hai domande, pubblicale nei commenti qui sotto.