Arhitectura Cassandra explicată: un tutorial cuprinzător
Publicat: 2021-03-10De la începuturile sale la Facebook, Cassandra a devenit unul dintre cele mai populare proiecte Apache. Este o bază de date cu sursă deschisă, de înaltă performanță și distribuită, folosită pe scară largă și ușurează viața inginerilor de software, a cercetătorilor de date și a dezvoltatorilor web.
Utilizatorii acestei soluții de baze de date robuste includ IBM, Facebook, Reddit, eBay și Twitter.
Cu toate acestea, pentru a vă familiariza cu Cassandra, trebuie să știți despre arhitectura sa, iar arhitectura Apache Cassandra poate fi puțin dificil de înțeles.
De aceea am creat următorul ghid introductiv despre arhitectura Cassandra. Vă va familiariza cu toate conceptele necesare ale arhitecturii Cassandra:
Cuprins
Bazele arhitecturii Cassandra
Arhitectura Apache Cassandra nu are noduri master sau slave. În schimb, are o arhitectură asemănătoare inelului în care nodurile sunt distribuite logic într-un inel. Arhitectura permite ca datele să fie distribuite automat în toate nodurile. La fel ca HDFS, datele din Cassandra sunt replicate peste noduri pentru redundanță și sunt stocate în memorie. Utilizează valorile hash ale cheilor pentru a distribui datele între nodurile din cluster.
Arhitectura Cassandra permite sistemului să funcționeze indiferent de un singur punct de defecțiune. Aceasta înseamnă că dacă un cluster are o sută de noduri și unul dintre ele eșuează, clusterul ar fi în continuare rulat. Pe de altă parte, cu Hadoop, eșecul unui namenode ar eșua întregul sistem.
Arhitectura Cassandra oferă scalabilitate ridicată, astfel încât un cluster poate avea chiar mii de noduri. Mai mult, puteți adăuga un nou nod la un cluster fără a întrerupe operațiunile acestuia.
Pe lângă caracteristicile pe care le-am discutat mai sus, arhitectura Apache Cassandra acceptă și mai multe centre de date și permite replicarea datelor în centrele de date.
Topologie și proiectare
Arhitectura Cassandra se bazează pe o arhitectură de sistem distribuită. Cea mai simplă versiune de Cassandra poate rula pe o singură mașină și poate funcționa bine cu testarea de bază. O instanță Cassandra este numită nod.
Cassandra oferă scalabilitate orizontală în care puteți adăuga mai mult de un nod ca componentă a unui cluster. Funcționează cu arhitectura peer to peer în care fiecare nod este conectat la fiecare alt nod. Fiecare nod Cassandra efectuează toate operațiunile bazei de date și solicitările clientului serverelor fără un nod master.
Această arhitectură distribuită peer-to-peer asigură că un singur punct de eșec nu cauzează defectarea întregului sistem. Clusterele din Cassandra pot comunica între ele pentru numeroase funcții. Următoarele concepte sunt vitale pentru o astfel de comunicare:
Bârfă
Gossip este un protocol Cassandra folosit de nodurile sale pentru comunicarea de la egal la egal. Acesta informează un nod despre stările celorlalte noduri. În fiecare secundă, un nod efectuează bârfe cu până la alte trei noduri și fiecare mesaj de bârfă urmează formate specifice și numere de versiune pentru a menține comunicarea eficientă.
Semințe
Fiecare nod din Cassandra configurează o listă de semințe care este o listă de alte noduri. Un nod seed nu are alt scop decât bootstrap-ul unui nod atunci când se alătură pentru prima dată unui cluster. După bootstrap, un nod nu necesită un seed la repornire. Cel mai bine este să folosiți două sau trei noduri de semințe pentru fiecare centru de date Cassandra și să păstrați lista de semințe uniformă.
Structura bazei de date
În Cassandra, datele sunt stocate în tabele în care fiecare tabel este organizat în rânduri și coloane. Mai mult, tabelele din Cassandra sunt grupate în spații cheie, cum ar fi tabelele cu datele clienților, toate pot fi grupate într-un spațiu cheie, în timp ce tabelele privind tranzacțiile comerciale pot fi stocate în altul.
Fiecare tabel are o cheie primară care este împărțită în coloane de grupare și cheie de partiție. Rețineți că coloanele de grupare sunt opționale. Cassandra folosește cheia de partiție pentru a indexa datele. Toate rândurile cu o cheie de partiție comună constituie o partiție de date, unitatea de bază pentru partiționarea datelor.
Împărțire în Cassandra
În Cassandra, un partiționer convertește cheile de partiție în jetoane. Există mai multe opțiuni de partiționare prezente în Cassandra, unde Murmur3Partitioner este implicit. Fiecărui jeton i se atribuie o valoare întreagă între -2^63 și +2^63-1, iar numele acestui interval este intervalul de simboluri.
Fiecare Cassandra deține o parte din această gamă și deține în principal date legate de gamă. Folosim un token pentru a localiza datele precis printre noduri.
Puteți înțelege sistemul de proprietate cu acest concept: dacă un cluster are un singur nod, atunci acel nod ar deține întreaga gamă de jetoane. Odată cu adăugarea a mai multe noduri, dreptul de proprietate asupra gamei de simboluri va fi împărțit în consecință.
Noduri virtuale
Cassandra simplifică provocările de calcul și atribuire a simbolurilor utilizând noduri virtuale, cunoscute și sub numele de Vnodes.
Împarte un cluster în numeroase noduri virtuale pentru a atribui token-uri și fiecare nod fizic primește o cantitate egală de Vnodes. Numărul implicit de Vnode deținute de un nod este 256. Puteți seta același lucru folosind proprietatea num_tokens. Când adăugați un nod nou la un cluster, algoritmul de alocare a jetonelor va aloca tokenurile necesare utilizând Vnodes.
Replicare
Cassandra replică datele prezente în fiecare keyspace cu un factor de replicare. O replică principală a datelor rămâne cu nodul proprietar al simbolului, în timp ce restul sunt plasate de Cassandra pe anumite noduri prin strategia sa de plasare a replicilor. Rețineți că toate replicile au o importanță egală pentru majoritatea operațiunilor de baze de date.
Două setări afectează plasarea replicilor în Cassandra, care sunt snitch și strategia de replicare. Snitch determină centrul de date și rack-ul căruia îi aparține un nod. Ei sunt responsabili pentru informarea lui Cassandra despre topologia pentru menținerea eficientă a lucrurilor.
Strategia de replicare este setată la nivelul spațiului cheie și există două dintre ele: NetworkTopologyStrategy și simplă strategie. Primul este un rack și un centru de date conștient, în timp ce cel de-al doilea nu este.
Teorema CAP
Fiecare sistem distribuit funcționează pe baza teoremei CAP. Conform acestei teoreme, orice sistem distribuit poate furniza în mod corespunzător oricare două din cele trei proprietăți, consistență, disponibilitate și toleranță la partiție.
În Cassandra, poți alege între disponibilitate și consistență. Aceasta înseamnă că datele pot fi fie foarte consistente cu o disponibilitate mai scăzută, fie foarte disponibile cu consistență scăzută.
Conceptul de solicitare a unui anumit număr de confirmări se numește consistență reglabilă și îl puteți aplica la nivel individual de interogare.
Procesul de scriere
În acest proces, datele sunt scrise într-un jurnal de comentarii de pe un disc și apoi trimise la un nod responsabil în funcție de valoarea hash.
După aceea, nodurile scriu date într-un tabel în memorie numit memtable, de unde datele sunt scrise într-un „sstable” în memorie. Apoi, este actualizat la tabelul actual.
Dacă nodul responsabil este oprit dintr-un anumit motiv, datele sunt scrise pe alt nod.
Aflați mai multe despre Arhitectura Cassandra
Înțelegerea arhitecturii Apache Cassandra vă va ajuta să înțelegeți cum funcționează această soluție. Până acum, știi și de ce Cassandra iese în evidență în competiție și de ce este atât de populară.
Dacă sunteți interesat să aflați mai multe despre bazele de date, puteți consulta următoarele resurse:
SQL pentru știința datelor: de ce SQL, listă de beneficii și comenzi
Cele mai frecvente 20 de întrebări și răspunsuri la interviu SQL [Pentru cei mai proaspăți]
Curs online gratuit SQL cu certificat [2021]
Pe de altă parte, dacă sunteți în căutarea unei experiențe de învățare personalizată, vă recomandăm să urmați un curs de știință a datelor. La upGrad, oferim o diplomă PG în știința datelor și un master în știința datelor . Aceste cursuri vă vor învăța toate abilitățile necesare pentru a deveni un profesionist în știința datelor.
Concluzie
Dacă sunteți interesat să aflați mai multe despre Programul Big Data, consultați programul PG Diploma în Dezvoltare Software Specializare în Big Data, care este conceput pentru profesioniști care lucrează și oferă peste 7 studii de caz și proiecte, acoperă 14 limbaje și instrumente de programare, mâini practice. la ateliere, peste 400 de ore de asistență riguroasă de învățare și plasare a unui loc de muncă cu firme de top.
Consultați celelalte cursuri ale noastre de inginerie software la upGrad.