Sådan opsættes Cassandra Cluster på flere knudepunkter

⚡ Smart opsummering

Cassandra Cluster grupperer flere noder, så data distribueres, og ingen enkelt maskine indeholder alt. Denne side forklarer klyngekomponenter, partitionereren og tokenringen, forudsætninger, konfigurationsindstillingerne, der forbinder noder, og hvordan man verificerer resultatet.

  • 🧩 Cluster Struktur: Noder danner datacentre, og datacentre danner en klynge, der opfører sig som én database.
  • 🎯 Partitioneringsrolle: En hash af partitionsnøglen producerer et token, og tokenet bestemmer, hvilken node der gemmer rækken.
  • ???? Frøknuder: Frø er de kontaktpunkter, en ny node først sladrer med; de er ikke herrer.
  • 🇧🇷 Nøgleindstillinger: cluster_name, seeds, listen_address og rpc_address skal indstilles konsekvent i cassandra.yaml.
  • 🚀 Opstartsordre: Start først frøknuder, en ad gangen, og forbind derefter de resterende knuder.
  • Verifikation: nodetool-status bør vise alle noder som UN med nogenlunde ligeligt ejerskab.

Opsætning Cassandra Cluster på flere knudepunkter

Hvad er Cassandra Cluster?

A Cassandra klynge er en af ​​skallerne i det hele Cassandra database. De Cassandra Klyngen indeholder adskillige forskellige lag af lagringsenheder, og hvert lag indeholder det andet.

Stor organisation som f.eks Amazon, Facebook osv. har enorme mængder data at håndtere. Så disse organisationer kan ikke gemme den enorme mængde data på den enkelte maskine. Det er her, de bruger databaser som Cassandra med distribueret arkitektur.

Disse organisationer lagrer den enorme mængde data på flere noder. Disse noder kommunikerer med hinanden. Til dette formål, Cassandra klynge er etableret.

  • Cluster er dybest set en gruppe af noder, så noder nemt kan kommunikere med hinanden.
  • Koordinatornoden er den node, der modtager en klientanmodning og kommunikerer med replikaerne på klientens vegne. Enhver node kan fungere som koordinator for enhver anmodning.

Skillevæg

En partitioner bestemmer, hvordan dataene skal distribueres på klyngen. Partitioner bruger en hash-funktion til at distribuere data på klyngen. Det kræver en partitionsnøgle at beregne hashen. Den hash hedder token. Data distribueres på basis af dette token.

Standardpartitioneringsværktøjet er Murmur3Partitioner, som producerer tokens fordelt jævnt over et fast område. Hver node ejer et eller flere områder i dette område, og samlingen af ​​områder danner tokenringFordi tildeling sker efter hash snarere end efter værdi, flytter tilføjelse af en node kun de områder, den overtager, i stedet for at omstokke hele datasættet.

Forudsætninger for Cassandra Cluster

Der er følgende krav til klyngeopsætning.

  1. Du bør have flere maskiner, fysiske eller virtuelle, der fungerer som noder.
  2. Noder skal kunne nå hinanden på netværket. Port 7000 til internodetrafik, 7001 hvis TLS er aktiveret, og 9042 til klientforbindelser skal være åbne mellem dem.
  3. Linux skal installeres på hver node. Det er platformen Cassandra er testet og understøttet på.
  4. Apache Cassandra skal installeres på alle noder med samme version. Blandede versioner kan ikke fuldføre en skemaaftale.
  5. En understøttet JDK skal installeres på hver maskine, med JAVA_HOME sat.
  6. Ure skal synkroniseres med NTP. Cassandra løser modstridende skrivninger efter tidsstempel, så urdrift lydløst producerer forkerte resultater.

Det sidste krav er det, der oftest overses, og det forårsager dataproblemer snarere end opstartsfejl.

.

Sådan installeres Cassandra Cluster på Linux

Cassandra skal installeres på hver maskine, før nogen af ​​dem kan deltage i en klynge. Skærmbillederne nedenfor kommer fra det grafiske installationsprogram DataStax Enterprise, som var den almindelige rute, da denne gennemgang blev skrevet. Dette installationsprogram distribueres ikke længere til fællesskabsbrug, så den nuværende fremgangsmåde vises først, og guiden følger som reference.

Nuværende metode: installere Apache Cassandra pakke- eller binær-tarball på hver node identisk, og verificer derefter at hver enkelt starter for sig selv, før du forsøger at joinforbinde dem.

tar -xzf apache-cassandra-x.y.z-bin.tar.gz -C /opt/
export CASSANDRA_HOME=/opt/apache-cassandra-x.y.z
$CASSANDRA_HOME/bin/cassandra -f

Når en enkelt node starter uden problemer, skal du stoppe den, rydde dens datamappe og gå videre til afsnittet om klyngekonfiguration nedenfor.

Trin 1) Kør Cassandra Opsætning af Enterprise-udgave. Til Linux terminal, kør opsætningen. Følgende side vil blive vist.

Installer Cassandra Cluster på Linux

Denne side giver ingen nødvendige oplysninger. Det giver blot oplysninger om Cassandra version. Så gå forbi denne side og tryk på næste knap.

Trin 2) Accepter licensaftalen. Når du har trykket på knappen Næste, vises den følgende side.

Installer Cassandra Cluster på Linux

Denne side giver information om pakkerne og underpakkerne i Cassandra som skal installeres. Nedenfor vil der blive spurgt om licensen. Markér afkrydsningsfeltet 'Jeg accepterer aftalen', og tryk på knappen Næste.

Trin 3) Installer Builder, og klik på Næste. Når du har trykket på knappen Næste, vil du se følgende side.

Installer Cassandra Cluster på Linux

Denne side spørger dig om installationsmulighederne.

  1. Først og fremmest vil den bede om installationsmappen. Som standard er det installeret i hjemmemappen.
  2. Dernæst spørger den om installationstype, vælg Simple Install.
  3. Dernæst spørger den om opdateringssystem, tjek det 'nej'.
  4. Dernæst spørger den om standardgrænsefladen. Der er to muligheder: Du kan installere på den lokale vært eller vælge en IP-adresse. Vælg en IP-adresse til installationen.
  5. Tryk på den næste knap.

Trin 4) Opsæt node og klik på Næste. Efter at have trykket på knappen Næste vises den følgende side.

Installer Cassandra Cluster på Linux

Denne side spørger om nodeopsætningen.

  1. Vælg først nodetype 'Cassandra Knudepunkt.
  2. Dernæst, i Ringenavn, skal du angive dit klyngenavn. Cluster navnet skal være det samme for alle noderne i den samme klynge.
  3. Vælg derefter seed-noden. Seed er den node, som andre ikke-seed-noder kontakter, når de starter.
  4. Når du har givet disse oplysninger, skal du trykke på knappen næste.

Trin 5) Installer overvågningsagenten. Når du har trykket på knappen Næste, vises følgende side. Denne side beder om den IP-adresse, hvor agenten skal installeres.

  1. Agenten er nødvendig for overvågningskonsollen, hvor alle noder kan observeres på ét sted.
  2. Når du har givet disse oplysninger, skal du trykke på knappen næste.

Installer Cassandra Cluster på Linux

Trin 6) Tryk på næste for installation. Efter at have trykket på knappen næste, vises den følgende side.

Installer Cassandra Cluster på Linux

Nu er opsætningen klar til installation. Tryk på knappen næste.

Trin 7) Vent på installationsprocessen. Når du har trykket på knappen Næste, vises den følgende side.

Installer Cassandra Cluster på Linux

Installationen vil begynde.

Trin 8) Klik på knappen Udfør. Efter installationen vises følgende side. På samme side vil du se et flueben ud for den indstilling, der vises som standard.

Installer Cassandra Cluster på Linux

Konfiguration af cassandra.yaml til at forbinde noder

Installation alene opretter ikke en klynge. Noder finder kun hinanden, når fire indstillinger i cassandra.yaml stemmer overens, og det er i denne fil, at de fleste klyngeopsætninger går galt.

cluster_name: 'Guru99 Cluster'
seed_provider:
  - class_name: org.apache.cassandra.locator.SimpleSeedProvider
    parameters:
      - seeds: "192.168.1.10,192.168.1.11"
listen_address: 192.168.1.10
rpc_address: 0.0.0.0
broadcast_rpc_address: 192.168.1.10
endpoint_snitch: GossipingPropertyFileSnitch
  • klyngenavn skal matche på hver node. En uoverensstemmelse er den mest almindelige årsag til, at en node nægter at deltage.
  • frø viser de kontaktpunkter, som en startnode kommunikerer med. To eller tre seeds pr. datacenter er nok; at gøre hver node til et seed forhindrer automatisk bootstrapping.
  • lytteadresse er den adresse, som andre noder bruger til at nå denne. Det skal være en rigtig routerbar adresse, aldrig localhost.
  • endpoint_snitch fortæller Cassandra rack- og datacenterlayoutet. GossipingPropertyFileSnitch er det sædvanlige valg, med værdier angivet i cassandra-rackdc.properties.

Ændring af snitch- eller clusternavnet efter data eksisterer kræver ekstra trin, så begge bør besluttes, før den første node starter.

Starter Cassandra Node

Efter installation Cassandra Start serverne på hver node, og følg trinene nedenfor. Rækkefølgen er vigtig: Start seed-noderne først, én ad gangen, og vent på, at hver node rapporterer som aktiv, før du starter den næste. At starte flere noder samtidigt kan forårsage konflikter i token-området.

Trin 1) Gå til Cassandra installationsmappen og start serveren.

bin/cassandra -f

Starter Cassandra Node

Ved at udføre denne kommando, Cassandra serveren vil blive startet. Her er skærmbilledet, hvor Cassandra serveren starter.

Starter Cassandra Node

Efter cirka et minut vil serveren være oppe. Start hver nodeserver én efter én. Når du har startet alle nodeserverne, skal du Cassandra klyngen er klar til brug.

Trin 2) Bekræft, at alle noder er forbundet, ved at tjekke ringen fra en af ​​dem.

nodetool status
nodetool describecluster

Hver node skal vises med status UN, hvilket betyder Op og Normal, og kolonnen Ejere bør vise nogenlunde lige store procenter. En enkelt skemaversion i describecluster-outputtet bekræfter, at alle noder er enige om skemaet.

Tre symptomer dækker over de fleste fejl. En node, der aldrig vises, har normalt et uoverensstemmelsesklyngenavn eller en blokeret port 7000. En node, der sidder fast ved UJ, der deltager, streamer stadig data og har blot brug for tid på en stor klynge. Ujævnt ejerskab peger på en fejlkonfiguration i forbindelse med "snitch", hvor noder blev placeret i det forkerte rack eller datacenter.

Når ringen er i orden, bestemmer replikeringsindstillingerne for hvert nøgleområde, hvordan data spredes på tværs af det, som beskrevet i Cassandra tasterum tutorial og Cassandra arkitektur sammenbrud.

Ofte Stillede Spørgsmål

Tre, hvilket matcher standardreplikeringsfaktoren på tre. Det tillader QUORUM-læsninger og -skrivninger at fortsætte, mens én node er nede på grund af vedligeholdelse eller fejl.

Nej. Seeds fungerer kun som kontaktpunkter under opstart og under Gossip. De lagrer data som enhver anden node, og tab af en node påvirker ikke en kørende klynge.

Installer den samme version, peg den mod eksisterende seeds, og start den. Den bootstrapper automatisk ved at streame sine token-intervaller. Kør nodetool cleanup på de andre noder bagefter.

Givet datamængde, replikationsfaktor og gennemløbsmål producerer AI et rimeligt startnummerantal. Valider det med en belastningstest, da komprimering og reparationsoverhead er arbejdsbelastningsspecifikke.

Ja. Hvis system.log angives sammen med cassandra.yaml, afsløres årsagen normalt hurtigt, oftest en uoverensstemmelse mellem klyngenavne, en blokeret port eller listen_address, der efterlades som localhost.

Opsummer dette indlæg med: