Cassandra full reparasjon

Cassandra full reparasjon

Apache Cassandra er bygget for å sikre høy tilgjengelighet i alle miljøer. Dette betyr at hvis en enkelt eller flere noder med en klynge ikke er tilgjengelige, vil de andre nodene i klyngen håndtere den forespurte operasjonen.

Imidlertid, når de utilgjengelige nodene blir tilgjengelige, må de vite hvilke operasjoner de savnet i klyngen. Derfor bruker Apache Cassandra en hint -funksjon for å varsle noden (e) om alle funksjonene som de savnet mens de ikke er tilgjengelige. Selv om antydninger kan utføre varsel om manglende operasjoner, garanterer det ikke en fullstendig datakonsistens på tvers av klyngen. Denne inkonsekvensen kan føre til tap av data, spesielt hvis en aktiv klynge multipliserer CRUD -operasjonene.

For å forhindre tap av data, må du utføre datareparasjoner, slik at nodene kan synkronisere dataene over klyngen med den oppdaterte informasjonen.

I denne opplæringen vil du oppdage hvordan du utfører reparasjonene manuelt i Cassandra -klyngen ved hjelp av NodeTool -verktøyet.

Typer reparasjoner i Cassandra

Cassandra støtter to hovedtyper av reparasjoner:

  1. Inkrementelle reparasjoner
  2. Full reparasjoner

Inkrementelle reparasjoner

Som standard utfører Cassandra en trinnvis reparasjon. Denne reparasjonen reparerer bare dataene som har endret seg siden forrige reparasjon. Dette er mindre ressurskrevende og veldig nyttig når du regelmessig utfører reparasjonene.

En ulempe med trinnvise reparasjoner er at når dataene er merket som reparert, vil Cassandra ikke forsøke å reparere dem igjen. Dette kan føre til tap av data, spesielt hvis reparasjonen blir korrupt.

Full reparasjoner

På den annen side er fulle reparasjoner mye ressursintensive, spesielt på Disk og Network I/O -operasjoner. Imidlertid utfører de datareparasjoner på tvers av klyngen, synkroniserer riktig, oppdatert informasjon.

Vi kunne bruke hele denne artikkelen på de forskjellige typer Cassandra -reparasjoner og hvordan Cassandra håndterer reparasjonene. La oss imidlertid komme inn på hovedretten i artikkelen.

NodeTool Repair -kommandoen

For å utføre en datareparasjon på en Cassandra -klynge, bruker vi NodeTool Repair -kommandoen. Kommandosyntaks og alternativer er som vist:

Avhengig av den spesifiserte metoden utfører reparasjonskommandoen enten en full eller inkrementell reparasjon på en eller flere noder.

Hvordan utføre en full reparasjon i Cassandra -klyngen

I denne delen, la oss se på hvordan vi kan utføre en full reparasjon på en Cassandra -klynge.

Merk: For å illustrere en full reparasjon best, kjør kommandoene i denne opplæringen i en klynge med tre eller flere noder.

Trinn 1: Lag et tasting med en replikasjonsfaktor på 3 (eller for antall tilgjengelige noder).

cassandra@cqlsh> lage nøkkelpace utvikling
... med replikasjon = 'klasse': 'enklest strategi', 'replication_factor': 3;

Trinn 2: Lag en tabell og legg til en eksempeldata.

cassandra@cqlsh: utvikling> lage tabell t (id int, navnetekst, alder int, primærnøkkel (ID));

Trinn 3: Legg til en eksempeldata.

cassandra@cqlsh: utvikling> sett inn i t (id, navn, alder) verdier (0, 'bruker1', 2);
cassandra@cqlsh: utvikling> sett inn i t (id, navn, alder) verdier (1, 'user2', 3);
cassandra@cqlsh: utvikling> sett inn i t (id, navn, alder) verdier (2, 'bruker3', 5);

Trinn 4: Få en data lagret i tabellen.

cassandra@cqlsh: utvikling> velg * fra t;

Produksjon:

id | alder | Navn
----+-----+-------
1 | 3 | Bruker2
0 | 2 | Bruker1
2 | 5 | Bruker3

Trinn 5: Oppdater nøkkelspace til å inkludere 4 replikker.

Cassandra@CQLSH: Utvikling> Alter KeySpace Development
... med replikasjon = 'klasse': 'enklest strategi', 'replication_factor': 4;

Å øke antallet replikker etterligner driften av en node i klyngen som går ned og kommer opp igjen.

Å øke replikasjonsfaktoren bør gi deg en melding om å utføre en datareparasjon.

Trinn 6: Utfør en full datareier som:

$ NodeTool Repair -full utvikling

Den forrige kommandoen utfører en full reparasjon på alle tabellene i den spesifiserte tastaturet. For å reparere bare en tabell, kan vi kjøre følgende kommando:

$ NodeTool Repair -full utvikling t

Dette skal bare reparere tabellen "T" i tastaturet.

For å se reparasjonsstatusen, kan du bruke TPSTATS -kommandoen:

$ NODETOOL TPSTATS

Konklusjon

I denne artikkelen lærte du hvordan du utfører Cassandras fulle reparasjon ved hjelp av NodeTool -verktøyet.

Takk for at du leste!