Spiegazione dell'architettura di Cassandra: un tutorial completo

Pubblicato: 2021-03-10

Fin dalla sua nascita su Facebook, Cassandra è diventato uno dei progetti Apache più popolari. È un database distribuito, open source e ad alte prestazioni ampiamente utilizzato e semplifica la vita di ingegneri del software, data scientist e sviluppatori web.

Gli utenti di questa solida soluzione di database includono artisti del calibro di IBM, Facebook, Reddit, eBay e Twitter.

Tuttavia, per familiarizzare con Cassandra, è necessario conoscere la sua architettura e l'architettura Apache Cassandra può essere un po' difficile da capire.

Ecco perché abbiamo creato la seguente guida introduttiva sull'architettura Cassandra. Ti farà familiarizzare con tutti i concetti necessari dell'architettura Cassandra:

Sommario

Nozioni di base sull'architettura di Cassandra

L'architettura Apache Cassandra non ha nodi master o slave. Invece, ha un'architettura ad anello in cui i nodi sono distribuiti logicamente in un anello. L'architettura consente la distribuzione automatica dei dati su tutti i nodi. Come HDFS, i dati in Cassandra vengono replicati tra i nodi per la ridondanza e vengono archiviati in memoria. Utilizza i valori hash delle chiavi per distribuire i dati tra i nodi nel cluster.

L'architettura Cassandra consente al sistema di funzionare indipendentemente da un singolo punto di guasto. Ciò significa che se un cluster ha cento nodi e uno di essi si guasta, il cluster sarebbe ancora in esecuzione. D'altra parte, con Hadoop, il fallimento di un namenode fallirebbe l'intero sistema.

L'architettura Cassandra offre un'elevata scalabilità in modo che un cluster possa avere anche migliaia di nodi. Inoltre, puoi aggiungere un nuovo nodo a un cluster senza interromperne le operazioni.

Oltre alle funzionalità discusse in precedenza, l'architettura Apache Cassandra supporta anche più data center e consente la replica dei dati tra i data center.

Topologia e Design

L'architettura Cassandra si basa su un'architettura di sistema distribuito. La versione più semplice di Cassandra può essere eseguita su una macchina e funzionare bene con i test di base. Un'istanza Cassandra è chiamata nodo.

Cassandra offre scalabilità orizzontale in cui puoi aggiungere più di un nodo come componente di un cluster. Funziona con l'architettura peer to peer in cui ogni nodo è connesso a ogni altro nodo. Ogni nodo Cassandra esegue tutte le operazioni del database e le richieste dei client dei server senza un nodo master.

Questa architettura distribuita peer-to-peer garantisce che un singolo punto di errore non causi il guasto dell'intero sistema. I cluster in Cassandra possono comunicare tra loro per numerose funzioni. I seguenti concetti sono vitali per tale comunicazione:

Pettegolezzo

Gossip è un protocollo Cassandra utilizzato dai suoi nodi per la comunicazione peer-to-peer. Informa un nodo sugli stati degli altri nodi. Ogni secondo, un nodo esegue gossip con un massimo di altri tre nodi e ogni messaggio gossip segue formati e numeri di versione specifici per mantenere efficiente la comunicazione.

Semi

Ogni nodo in Cassandra configura un elenco di semi che è un elenco di altri nodi. Un nodo seed non ha alcuno scopo diverso dal bootstrap di un nodo quando si unisce per la prima volta a un cluster. Dopo il bootstrap, un nodo non richiede un seed al riavvio. È meglio utilizzare due o tre nodi seme per data center Cassandra e mantenere uniforme l'elenco dei semi.

Struttura del database

In Cassandra, i dati vengono archiviati in tabelle in cui ogni tabella è organizzata in righe e colonne. Inoltre, le tabelle in Cassandra sono raggruppate in spazi delle chiavi, ad esempio le tabelle sui dati dei clienti possono essere tutte raggruppate in uno spazio delle chiavi mentre le tabelle sulle transazioni commerciali possono essere archiviate in un altro.

Ogni tabella ha una chiave primaria che è divisa in colonne di clustering e chiave di partizione. Si noti che le colonne di clustering sono facoltative. Cassandra usa la chiave di partizione per indicizzare i dati. Tutte le righe con una chiave di partizione comune costituiscono una partizione dati, l'unità di base per il partizionamento dei dati.

Partizionamento in Cassandra

In Cassandra, un partizionatore converte le chiavi di partizione in token. Sono presenti più opzioni di partizionamento in Cassandra in cui Murmur3Partitioner è l'impostazione predefinita. A ogni token viene assegnato un valore intero compreso tra -2^63 e +2^63-1 e il nome di questo intervallo è l'intervallo di token.

Ogni Cassandra possiede una parte di questo intervallo e possiede principalmente dati relativi all'intervallo. Usiamo un token per localizzare i dati con precisione tra i nodi.

Puoi comprendere il sistema di proprietà con questo concetto: se un cluster ha un solo nodo, quel nodo sarebbe proprietario dell'intero intervallo di token. Con l'aggiunta di più nodi, la proprietà dell'intervallo di token verrebbe divisa di conseguenza.

Nodi virtuali

Cassandra semplifica il calcolo dei token e le sfide di assegnazione utilizzando nodi virtuali, noti anche come Vnodes.

Divide un cluster in numerosi nodi virtuali per assegnare token e ogni nodo fisico ottiene una quantità uguale di Vnode. Il numero predefinito di Vnode di proprietà di un nodo è 256. È possibile impostare lo stesso utilizzando la proprietà num_tokens. Quando aggiungi un nuovo nodo a un cluster, l'algoritmo di allocazione dei token alloca i token richiesti usando i Vnodes.

Replica

Cassandra replica i dati presenti in ogni keyspace con un fattore di replica. Una replica primaria dei dati rimane con il nodo proprietario del token mentre il resto viene posizionato da Cassandra su nodi particolari attraverso la sua strategia di posizionamento delle repliche. Si noti che tutte le repliche hanno la stessa importanza per la maggior parte delle operazioni di database.

Due impostazioni influiscono sul posizionamento della replica in Cassandra, che sono il boccino e la strategia di replica. Snitch determina il data center e il rack a cui appartiene un nodo. Sono responsabili dell'informazione di Cassandra sulla topologia per mantenere le cose efficienti.

La strategia di replica è impostata a livello di spazio delle chiavi e ce ne sono due: NetworkTopologyStrategy e strategia semplice. Il primo è a conoscenza di rack e data center mentre il secondo no.

Teorema della CAP

Ogni sistema distribuito funziona in base al teorema CAP. Secondo questo teorema, qualsiasi sistema distribuito può fornire correttamente due delle tre proprietà, Coerenza, Disponibilità e Tolleranza alla partizione.

In Cassandra puoi scegliere tra disponibilità e consistenza. Ciò significa che i dati possono essere altamente coerenti con una disponibilità inferiore o altamente disponibili con una bassa coerenza.

Il concetto di richiesta di un numero specifico di riconoscimenti è chiamato coerenza sintonizzabile e puoi applicarlo a livello di singola query.

Processo di scrittura

In questo processo, i dati vengono scritti in un registro commenti su un disco e quindi inviati a un nodo responsabile in base al valore hash.

Successivamente, i nodi scrivono i dati in una tabella in memoria chiamata memtable da cui i dati vengono scritti in una "sstable" in memoria. Successivamente, viene aggiornato alla tabella effettiva.

Se il nodo responsabile è inattivo per qualche motivo, i dati vengono scritti su un altro nodo.

Ulteriori informazioni sull'architettura Cassandra

Comprendere l'architettura di Apache Cassandra ti aiuterebbe a capire come funziona questa soluzione. Ormai sai anche perché Cassandra si distingue nella concorrenza e perché è così popolare.

Se sei interessato a saperne di più sui database, puoi consultare le seguenti risorse:

SQL per la scienza dei dati: perché SQL, elenco di vantaggi e comandi

20 domande e risposte per interviste SQL più comuni [per matricole]

Corso online gratuito SQL con certificato [2021]

D'altra parte, se stai cercando un'esperienza di apprendimento personalizzata, ti consigliamo di seguire un corso di scienza dei dati. A upGrad, offriamo un diploma PG in Data Science e un Master of Science in Data Science . Questi corsi ti insegneranno tutte le competenze necessarie per diventare un professionista della scienza dei dati.

Conclusione

Se sei interessato a saperne di più sul programma Big Data, dai un'occhiata al nostro PG Diploma in Software Development Specialization nel programma Big Data, progettato per professionisti che lavorano e fornisce oltre 7 casi di studio e progetti, copre 14 linguaggi e strumenti di programmazione, mani pratiche sui workshop, oltre 400 ore di rigoroso apprendimento e assistenza all'inserimento lavorativo con le migliori aziende.

Controlla i nostri altri corsi di ingegneria del software su upGrad.

Con Curriculum all'avanguardia nei Big Data

CURRICULUM ALL'AVANGUARDIA IN BIG DATA DA IIIT-B
Programma di certificazione avanzato in Big Data da IIIT Bangalore