GNU/Linux >> Linux Esercitazione >  >> Linux

Come installare Apache Cassandra Cluster su Linux

Apache Cassandra è un sistema di gestione di database distribuito NoSQL gratuito e open source creato da Facebook (ora Meta). La natura distribuita di Cassandra consente un'elevata disponibilità e prestazioni elevate senza un singolo punto di errore.

Grazie alla sua scalabilità, Cassandra è adatta per enormi set di dati attivi e critici. Organizzazioni grandi e famose come Apple, Bloomberg, BestBuy, eBay, Netflix, Spotify e molte altre. E se sei interessato a conoscere Apache Cassandra, sei nel posto giusto.

In questo articolo imparerai come impostare e configurare un cluster Apache Cassandra su sistemi Linux. Imparerai anche come interagire con Cassandra utilizzando i suoi strumenti da riga di comando.

Prerequisiti

Per seguire gli esempi in questo tutorial, assicurati di disporre dei seguenti requisiti.

  • Avrai bisogno che due server Linux siano nella stessa rete. Questo tutorial utilizzerà due server Rocky Linux (v8.5) con i seguenti dettagli.
Nome host Indirizzo IP
cassandra01 172.16.1.10
cassandra02 172.16.1.15

La documentazione di Apache Cassandra non fornisce un elenco prescrittivo di distribuzioni Linux compatibili, ma menziona che Cassandra può essere eseguito su CentOS, RHEL, Debian e SUSE Enterprise Linux.

  • Devi disporre dei privilegi sudo o dell'accesso all'account root.
  • Editor di testo nano o qualsiasi editor di testo basato su Linux.

Installazione di Java OpenJDK e Python

Prima di passare all'installazione di Apache Cassandra, devi prima installare le dipendenze del software. Cassandra è un'applicazione basata su Java e l'ultima versione (v4.0 al momento della stesura di questo articolo) richiede Java OpenJDK 1.8 e Python 3.6.

Questo tutorial utilizza il gestore di pacchetti DNF per le distribuzioni Linux basate su RPM. Puoi anche usare Yum o Apt su distribuzioni basate su DEB come Ubuntu e Debian. Fare riferimento alla documentazione della distribuzione per determinare quale gestore di pacchetti utilizzare.

Segui i passaggi seguenti per installare Java OpenJDK 1.8 e Python 3.6 su ciascun server.

1. Apri il tuo client SSH, connettiti al tuo server ed esegui sudo su comando per diventare root.

ssh [email protected]_name_or_IP
sudo su

2. Quindi, esegui dnf comando seguente per installare i pacchetti Java OpenJDK 1.8 e Python 3.6. Attendi il completamento dell'installazione.

dnf install java-1.8.0-openjdk python36 -y

3. Ora verifica la versione Java eseguendo il comando seguente.

java -version

Di seguito puoi vedere la versione corrente di Java OpenJDK è 1.8.0_312.

4. Quindi, imposta l'interprete Python predefinito sui tuoi server su Python 3.6. Per farlo, esegui alternatives comando come di seguito.

alternatives --config python

Digita il numero corrispondente alla tua versione di Python al prompt di selezione dei comandi. L'esempio seguente mostra che Python3 è l'opzione 2.

5. Infine, esegui il seguente comando per verificare la versione di Python.

python --version

Dovresti vedere che Python 3.x.x è l'impostazione predefinita, simile allo screenshot qui sotto.

Installazione del database NoSQL di Apache Cassandra

Hai installato le dipendenze e ti sei assicurato che fossero versioni adatte. Ora è il momento di installare Apache Cassandra!

Sebbene ci siano molti modi per installare Cassandra, il modo più conveniente è attraverso il repository ufficiale. Ma ci sono alcuni rapidi passaggi che devi eseguire prima. Per installare Cassandra NoSQL Database su sistemi Linux, procedere come segue.

1. Eseguire il comando seguente per creare un nuovo file di repository per Cassandra.

nano /etc/yum.repos.d/cassandra.repo

2. Copiare la seguente configurazione del repository Cassandra. Questo repository è disponibile per la maggior parte delle distribuzioni Red Hat, incluso Rocky Linux.

[cassandra]
name=Apache Cassandra
baseurl=https://downloads.apache.org/cassandra/redhat/40x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://downloads.apache.org/cassandra/KEYS

3. Dopo la modifica, salva e chiudi il file premendo Ctrl+X , Y e Enter .

4. Quindi, esegui il dnf comando seguente per verificare tutti i repository disponibili sul tuo sistema.

dnf repolist

Dovresti vedere il repository Apache Cassandra nell'elenco dei repository, come mostrato di seguito.

5. Ora installa Cassandra NoSQL Database eseguendo il comando seguente.

dnf install cassandra -y

Dovresti vedere un messaggio di conferma dopo aver installato Apache Cassandra, simile allo screenshot qui sotto.

Configurazione del cluster Apache Cassandra

Dopo aver installato Cassandra, dovrai modificare la configurazione /etc/cassandra/conf/cassandra.yaml e configurare il cluster Cassandra.

Per far funzionare il cluster Cassandra, dovrai modificare la configurazione Cassandra predefinita su tutti i server, ad esempio:

  • Cambia il cluster_name predefinito .
  • Aggiungi gli indirizzi IP del server a seeds opzione.
  • Cambia il listen_address predefinito all'indirizzo IP locale.
  • Abilita il rpc_address per le connessioni client.

Ora, procedi con i seguenti passaggi per configurare il cluster Cassandra.

1. Su cassandra01 , esegui il comando seguente per aprire la configurazione di Cassandra cassandra.yaml per la modifica.

nano /etc/cassandra/conf/cassandra.yaml

2. Modificare il valore predefinito di cluster name con il nuovo nome. Questo tutorial utilizza il nuovo nome del cluster ATA Cluster .

cluster_name: 'ATA Cluster'

3. Ora aggiungi l'indirizzo IP di ciascun server con la porta TCP Cassandra 7000 predefinita al seeds opzione qui sotto. Il formato segue lo schema IP:Port,IP:Port e la porta predefinita è 7000 .

seeds: "172.16.1.10:7000,172.16.1.15:7000"

4. Quindi, cambia il listen_address predefinito all'indirizzo IP del server, non host locale. L'opzione listen_address definisce quale indirizzo IP verrà eseguito da Cassandra.

# for cassandra01
listen_address: 172.16.1.10

# for cassandra02
listen_address: 172.16.1.15

5. Quindi, cambia l'opzione predefinita rpc_address con l'indirizzo IP del server, lo stesso valore del listen_address opzione. Nell'ambiente del cluster Cassandra, tutte le connessioni client passano attraverso l'indirizzo IP del server locale sul TCP predefinito porta 9042 .

# for cassandra01
rpc_address: 172.16.1.10

# for cassandra02
rpc_address: 172.16.1.15

6. Salvare e chiudere il file di configurazione premendo Ctrl+X , Y e Enter .

7. Dopo aver modificato la configurazione di Cassandra, eseguire il comando seguente per avviare il servizio Cassandra. Questo comando avvierà automaticamente il cluster e raggiungerà altri server i cui indirizzi IP si trovano sul seeds opzione.

service cassandra start

8. Ora, conferma lo stato del servizio Cassandra eseguendo il comando seguente.

service cassandra status

Otterrai un output simile allo screenshot qui sotto. Come puoi vedere, il servizio Cassandra è attivo (in esecuzione) .

Protezione del cluster Apache Cassandra con il firewall

La configurazione di un firewall per la protezione dei servizi è un'attività essenziale nell'ambiente di produzione. In questo modo puoi limitare l'accesso al cluster Cassandra solo da indirizzi IP o intervalli di rete specifici.

Su distribuzioni Red Hat Linux generiche, firewalld è il software firewall predefinito.

Per impostazione predefinita, Cassandra richiede che due porte TCP siano aperte. La porta 7000 è la porta del cluster predefinita e la porta 9042 è la porta di trasporto predefinita nativa per le connessioni client.

Segui questi passaggi per proteggere la distribuzione del cluster Cassandra con un firewall.

1. Per prima cosa, conferma se hai già firewalld sui tuoi server eseguendo il comando seguente.

dnf search firewalld

Se firewalld non esiste, segui i passaggi n. 2 e n. 3. Ma se firewalld esiste già sul server, vai invece al passaggio n. 4.

2. Se non hai firewalld sul tuo sistema, esegui il seguente comando per installarlo.

dnf install firewalld -y

3. Ora avvia il firewalld servizio eseguendo il comando seguente. Questo comando avvierà il firewalld servizio con regole predefinite, aprendo porte e servizi essenziali come client SSH e DHCP.

systemctl start firewalld

Per impostazione predefinita, firewalld fornisce un'interfaccia a riga di comando firewall-cmd per la gestione e il mantenimento delle regole del firewall.

4. Esegui il seguente firewall-cmd comando per creare una nuova zona per il cluster Cassandra e ricaricare il firewalld regole.

# add firewalld zone cassandra-cluster
firewall-cmd --new-zone=cassandra-cluster --permanent

# reload firewalld
firewall-cmd --reload

Verrà visualizzato il messaggio di output successo , il che significa che l'operazione è riuscita. L'opzione --permanent rende permanenti le nuove regole del firewall.

5. Successivamente, aggiungi il CIDR di rete del server al cassandra-cluster zona. Questa regola consente a qualsiasi server o client sul 172.16.1.0/24 CIDR per parlare e connettersi. Per aggiungere un singolo indirizzo IP, inserisci l'indirizzo IP 172.16.1.20 .

firewall-cmd --zone=cassandra-cluster --add-source=172.16.1.0/24 --permanent

6. Ora, esegui il comando seguente per aggiungere le porte del servizio Cassandra 7000 e 9042 al cassandra-cluster zona.

# add storage_port Apache Cassandra to the zone cassandra_cluster
firewall-cmd --zone=cassandra-cluster --add-port=7000/tcp --permanent

# add Apache Cassandra port for client connections
firewall-cmd --zone=cassandra-cluster --add-port=9042/tcp --permanent

7. Infine, ricarica firewalld regole per applicare una nuova configurazione eseguendo il comando seguente.

firewall-cmd --reload

Il cluster Cassandra è ora accessibile solo tramite il 172.16.1.0/24 rete e interromperà tutte le connessioni dalle altre reti.

Verifica dello stato del cluster Apache Cassandra

Nodetool è un'utilità di comando nativa per la gestione e il monitoraggio del cluster Cassandra. Questo strumento ti consente di mostrare lo stato delle metriche del cluster Cassandra, come tabelle e spazi delle chiavi, metriche del server, applicazioni, metriche della connessione client, ecc.

In generale, gli amministratori eseguono nodetool comando direttamente sul server Cassandra operativo eseguendo la manutenzione e il monitoraggio di routine del database.

Segui i passaggi seguenti per apprendere le basi del monitoraggio del cluster Cassandra utilizzando il nodetool utilità.

1. Verificare lo stato del cluster Cassandra eseguendo il comando seguente.

nodetool status

Otterrai un output simile allo screenshot qui sotto.

  • U significa che il nodo è UP o in esecuzione.
  • N significa che il nodo è NORMALE .
  • L'indirizzo può essere l'indirizzo IP o l'URL del nodo.
  • Carica è la dimensione dei file nella directory dei dati di Cassandra. Questo valore si aggiorna ogni 90 secondi.
  • Il Token è il numero di token disponibili sul nodo.
  • L'ID host è l'ID di rete del nodo. Ogni nodo ha un ID diverso.

2. Ora esegui il comando seguente per ottenere informazioni dettagliate sul singolo nodo.

nodetool info

Di seguito, puoi vedere informazioni dettagliate sul nodo come:

  • Tempo di attività
  • Informazioni sulla memoria dell'heap
  • Carica
  • Cache chiavi e cache contatore
  • Posizione del centro dati

3. Successivamente, visualizza i dettagli del cluster Cassandra eseguendo il comando seguente.

nodetool describecluster

Di seguito puoi vedere il cluster Cassandra dettagliato.

  • Informazioni sul cluster contiene informazioni di base sul cluster Cassandra, inclusi nome, partizionatore Cassandra predefinito e versione dello schema.
  • Statistiche per tutti i nodi indicare lo stato corrente di tutti i nodi del cluster Cassandra.
  • Se hai creato il cluster Cassandra su più data center, vedrai tutti i tuoi data center sui data center sezione.
  • Le versioni del database la sezione mostra la versione Cassandra su ogni nodo del cluster.
  • L'elenco di tutti gli spazi delle chiavi o i database disponibili nel cluster Cassandra è disponibile in Spazi delle chiavi sezione.

Connessione al cluster Apache Cassandra

L'installazione del pacchetto Apache Cassandra sul server installa anche Cassandra Query Language Shell (CQLSH). Questo strumento consente agli amministratori di connettersi ad Apache Cassandra e gestire database o spazi delle chiavi e utenti.

Segui i passaggi seguenti per connetterti al cluster Cassandra utilizzando la riga di comando cqlsh .

1. Esegui cqlsh comando seguente per la connessione al cluster Cassandra. Specificare l'indirizzo IP Cassandra e la porta predefinita per le connessioni client è 9042 .

cqlsh 172.16.1.10 9042

Dopo esserti connesso al cluster Cassandra, vedrai un output simile come lo screenshot qui sotto. Questo esempio utilizza il nome del cluster ATA Cluster sull'indirizzo IP del server 172.16.1.10 .

2. Ora, esegui le seguenti query CQL per verificare a quale server ti sei connesso, controllare il nome del cluster e controllare tutti gli spazi delle chiavi disponibili su Cassandra.

# show detailed host
SHOW HOST

# show cluster name
DESCRIBE CLUSTER

# list all available keyspaces (databases)
DESCRIBE KEYSPACES

Vedrai un output simile allo screenshot qui sotto. Il SHOW HOST query ti mostra dove sei connesso, la query DESCRIBE CLUSTER mostra il nome del cluster Cassandra e la query DESCRIBE KEYSPACES ti mostra l'elenco degli spazi delle chiavi sul tuo nodo Cassandra.

3. Infine, digita il exit per disconnettersi dal cqlsh ambiente.

Conclusione

Durante questo tutorial, hai imparato come installare e configurare Apache Cassandra su Linux. Hai anche configurato il cluster Apache Cassandra utilizzando due server Linux e protetto la distribuzione utilizzando Firewalld.

A questo punto, sei pronto per aggiungere più server e scalare le tue distribuzioni, fornendo alta disponibilità, coerenza e ridondanza per i tuoi dati.

Qual è il prossimo passo per te? Potresti iniziare con la configurazione dell'autenticazione e dell'autorizzazione sul tuo cluster Cassandra, quindi impostare la replica dello spazio delle chiavi/del database per le tue applicazioni. E già che ci sei, perché non imparare come mantenere il cluster Apache Cassandra con nodetool?


Linux
  1. Come installare Python su Linux

  2. Come installare Apache Cassandra su AlmaLinux / Rocky Linux 8

  3. Come installare Apache Cassandra su Ubuntu 18.04 / Ubuntu 16.04 e Debian 9

  4. Come installare Python su Linux Mint 20

  5. Come installare Apache Kafka su Rocky Linux 8

Come installare Apache 2.4 e PHP 7.4 su Amazon Linux

Come installare Apache Cassandra su AlmaLinux 8 | Linux roccioso 8

Come installare e configurare Apache Cassandra su sistema Linux

Come installare Apache su Arch Linux

Come installare Anaconda Python su Rocky Linux 8

Come installare Apache Solr su Oracle Linux 8