Hur man ställer in Cassandra Cluster på flera noder
⚡ Smart sammanfattning
Cassandra Cluster grupperar flera noder så att data distribueras och ingen enskild maskin lagrar allt. Den här sidan förklarar klusterkomponenter, partitioneraren och tokenringen, förutsättningar, konfigurationsinställningarna som sammanfogar noder och hur man verifierar resultatet.

Vad är Cassandra Cluster?
A Cassandra kluster är ett av skalen i det hela Cassandra databas. De Cassandra Klustret innehåller många olika lager av lagringsenheter, och varje lager innehåller det andra.
Stor organisation som t.ex Amazon, Facebook, etc. har enorma mängder data att hantera. Så dessa organisationer kan inte lagra den enorma mängden data på en enda maskin. Det är när de använder databaser som Cassandra med distribuerad arkitektur.
Dessa organisationer lagrar den enorma mängden data på flera noder. Dessa noder kommunicerar med varandra. För detta ändamål, Cassandra kluster är etablerat.
- Cluster är i grunden en grupp noder, så att noder enkelt kan kommunicera med varandra.
- Koordinatornoden är den nod som tar emot en klientförfrågan och kommunicerar med replikerna för klientens räkning. Vilken nod som helst kan fungera som koordinator för vilken förfrågan som helst.
Skiljeväggar
En partitionerare bestämmer hur data ska distribueras på klustret. Partitioner använder en hash-funktion för att distribuera data i klustret. Det krävs en partitionsnyckel för att beräkna hashen. Det hash heter token. Data distribueras på basis av denna token.
Standardpartitioneraren är Murmur3Partitioner, som producerar tokens jämnt fördelade över ett fast område. Varje nod äger ett eller flera områden inom det området, och samlingen av områden bildar pollettringEftersom tilldelning sker via hash snarare än värde, flyttas bara de områden den tar över när en nod läggs till, snarare än att hela datamängden blandas om.
Förutsättningar för Cassandra Cluster
Det finns följande krav för klusterinstallation.
- Du bör ha flera maskiner, fysiska eller virtuella, som fungerar som noder.
- Noder måste kunna nå varandra i nätverket. Portarna 7000 för internodtrafik, 7001 om TLS är aktiverat och 9042 för klientanslutningar måste vara öppna mellan dem.
- Linux bör installeras på varje nod. Det är plattformen Cassandra är testad och stödd på.
- Apache Cassandra måste installeras på varje nod, med samma version. Blandade versioner kan inte slutföra ett schemaavtal.
- En stödd JDK måste installeras på varje maskin, med JAVA_HOME satt.
- Klockor måste vara synkroniserade med NTP. Cassandra löser motstridiga skrivningar med tidsstämpel, så att klockdrift tyst ger fel resultat.
Det sista kravet är det som oftast missas, och det orsakar dataproblem snarare än startfel.
.
Hur man installerar Cassandra Cluster på Linux
Cassandra måste installeras på varje maskin innan någon av dem kan gå med i ett kluster. Skärmdumparna nedan kommer från det grafiska installationsprogrammet för DataStax Enterprise, vilket var den vanliga vägen när denna genomgång skrevs. Installationsprogrammet distribueras inte längre för communityanvändning, så den nuvarande metoden ges först och guiden följer som referens.
Nuvarande metod: installera Apache Cassandra paket- eller binär-tarball på varje nod identiskt, verifiera sedan att var och en startar på egen hand innan du försöker ansluta till 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 enskild nod startar utan problem, stoppa den, rensa dess datakatalog och gå vidare till avsnittet om klusterkonfiguration nedan.
Steg 1) Kör Cassandra Konfiguration av företagsversion. På Linux terminalen, kör installationsprogrammet. Följande sida visas.
Den här sidan ger ingen nödvändig information. Det ger bara information om Cassandra version. Så passera denna sida och tryck på nästa-knappen.
Steg 2) Godkänn licensavtalet. Efter att du tryckt på nästa-knappen visas följande sida.
Den här sidan ger information om paketen och underpaketen i Cassandra som kommer att installeras. Nedan kommer det att fråga om licensen. Markera kryssrutan "Jag accepterar avtalet" och tryck på nästa-knappen.
Steg 3) Installera Builder och klicka på Nästa. Efter att du tryckt på nästa-knappen kommer du att se följande sida.
Den här sidan frågar dig om installationsalternativen.
- Först och främst kommer den att fråga efter installationskatalogen. Som standard är den installerad i hemkatalogen.
- Därefter frågar den om installationstyp, välj Enkel installation.
- Därefter frågar den om uppdateringssystem, kontrollera det "nej".
- Sedan frågar den efter standardgränssnittet. Det finns två alternativ, du kan installera på den lokala värddatorn eller välja IP-adress. Välj IP-adress för installationen.
- Tryck på nästa knapp.
Steg 4) Konfigurera noden och klicka på Nästa. Efter att du tryckt på nästa-knappen visas följande sida.
Den här sidan frågar om nodkonfigurationen.
- Välj först nodtyp 'Cassandra Nod'.
- Ange sedan ditt klusternamn i Ringnamn. Cluster Namnet ska vara detsamma för alla noder i samma kluster.
- Välj sedan frönoden. Frönoden är den nod som andra noder som inte är frönoder kontaktar när de startar.
- Efter att ha tillhandahållit denna information, tryck på nästa knapp.
Steg 5) Installera övervakningsagenten. Efter att du tryckt på nästa-knappen visas följande sida. På den här sidan frågas efter IP-adressen där agenten ska installeras.
- Agenten behövs för övervakningskonsolen, där alla noder kan observeras på ett ställe.
- Efter att ha tillhandahållit denna information, tryck på nästa knapp.
Steg 6) Tryck på nästa för installation. Efter att du tryckt på nästa-knappen visas följande sida.
Nu är installationen klar att installera. Tryck på nästa knapp.
Steg 7) Vänta på installationsprocessen. Efter att du tryckt på nästa-knappen visas följande sida.
Installationen börjar.
Steg 8) Klicka på knappen Slutför. Efter installationen visas följande sida. På samma sida ser du bocken för det alternativ som visas som standard.
Konfigurera cassandra.yaml för att ansluta noder
Enbart installation skapar inte ett kluster. Noder hittar bara varandra när fyra inställningar i cassandra.yaml överensstämmer, och det är i den här filen som de flesta klusterinställningar går fel.
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
- klusternamn måste matcha på varje nod. En missmatchning är den vanligaste orsaken till att en nod vägrar att ansluta.
- frön listar de kontaktpunkter som en startnod skvallrar med. Två eller tre seeds per datacenter räcker; att göra varje nod till ett seed förhindrar automatisk bootstrapping.
- lyssna_adress är adressen som andra noder använder för att nå denna. Det måste vara en riktig routbar adress, aldrig localhost.
- endpoint_snitch berättar Cassandra rack- och datacenterlayouten. GossipingPropertyFileSnitch är det vanliga valet, med värden angivna i cassandra-rackdc.properties.
Att ändra snitch- eller klusternamnet efter att data finns kräver extra steg, så båda bör bestämmas innan den första noden startar.
Starta Cassandra Nod
När du har installerat Cassandra Starta servrarna på varje nod och följ stegen nedan. Ordningen spelar roll: starta seed-noderna först, en i taget, och vänta på att varje nod rapporteras som aktiv innan du startar nästa. Att starta flera noder samtidigt kan orsaka konflikter med tokenintervall.
Steg 1) Gå till Cassandra installationskatalogen och starta servern.
bin/cassandra -f
Genom att köra detta kommando, Cassandra servern kommer att startas. Här är skärmdumpen där Cassandra servern startar.
Efter ungefär en minut kommer servern att vara uppe. Starta varje nodserver en efter en. Efter att du har startat alla nodservrar, din Cassandra klustret är redo att användas.
Steg 2) Verifiera att varje nod har anslutits genom att kontrollera ringen från någon av dem.
nodetool status nodetool describecluster
Varje nod ska visas med status UN, vilket betyder Upp och Normal, och kolumnen Äger bör visa ungefär lika stora procenttal. En enda schemaversion i describecluster-utdata bekräftar att alla noder är överens om schemat.
Tre symptom täcker de flesta fel. En nod som aldrig visas har vanligtvis ett felaktigt klusternamn eller en blockerad port 7000. En nod som har fastnat vid UJ, som går med, strömmar fortfarande data och behöver helt enkelt tid på ett stort kluster. Vilt ojämnt ägande pekar på en felkonfiguration i form av en snitch, där noder placerades i fel rack eller datacenter.
När ringen är i gott skick avgör replikeringsinställningarna för varje nyckelutrymme hur data sprids över det, enligt beskrivningen i Cassandra tangentutrymme handledning och Cassandra arkitektur bryta ner.










