Hogyan kell beállítani Cassandra Cluster több csomóponton

⚡ Okos összefoglaló

Cassandra Cluster több csomópontot csoportosít, hogy az adatok el legyenek osztva, és ne legyen egyetlen gép, amely mindent tárolna. Ez az oldal ismerteti a fürt összetevőit, a particionálót és a token ringet, az előfeltételeket, a csomópontokat összekapcsoló konfigurációs beállításokat, valamint az eredmény ellenőrzésének módját.

  • 🧩 Cluster Szerkezet: A csomópontok adatközpontokat alkotnak, az adatközpontok pedig egy klasztert alkotnak, amely egyetlen adatbázisként viselkedik.
  • 🎯 Particionáló szerepkör: A partíciós kulcs hash-e egy tokent hoz létre, és a token dönti el, hogy melyik csomópont tárolja a sort.
  • ???? Vetőmagcsomópontok: A magok azok a kapcsolódási pontok, amelyekkel egy új csomópont először pletykál; ők nem mesterek.
  • 🇧🇷 Kulcsbeállítások: A cluster_name, seeds, listen_address és rpc_address értékeket konzisztensen kell beállítani a cassandra.yaml fájlban.
  • 🚀 Indítási sorrend: Először a kezdőcsomópontokat indítsd el, egyenként, majd csatlakoztasd a többi csomópontot.
  • ✅ Ellenőrzés: A nodetool status függvénynek minden csomópontot UN-ként kell feltüntetnie, nagyjából egyenlő tulajdonjoggal.

felépítés Cassandra Cluster több csomóponton

Mi a Cassandra Cluster?

A Cassandra klaszter az egyik héj az egészben Cassandra adatbázis. A Cassandra A klaszter számos különböző tárolóegység-réteget tartalmaz, és minden réteg tartalmazza a másikat.

Nagy szervezet, mint pl Amazon, a Facebooknak stb. hatalmas mennyiségű adatot kell kezelnie. Tehát ezek a szervezetek nem tudják ezt a hatalmas adatmennyiséget egyetlen gépen tárolni. Ilyenkor olyan adatbázisokat használnak, mint a Cassandra elosztott architektúrával.

Ezek a szervezetek hatalmas mennyiségű adatot tárolnak több csomóponton. Ezek a csomópontok kommunikálnak egymással. Erre a célra, Cassandra klaszter jön létre.

  • Cluster alapvetően csomópontok egy csoportja, így a csomópontok könnyen kommunikálhatnak egymással.
  • A koordinátor csomópont az a csomópont, amely fogadja a klienskérést, és az adott kliens nevében kommunikál a replikákkal. Bármelyik csomópont koordinátorként működhet bármely kérés esetében.

Elválasztó

A particionáló határozza meg, hogy az adatokat hogyan kell elosztani a fürtön. A particionáló hash függvényt használ az adatok elosztására a fürtön. A hash kiszámításához partíciós kulcsra van szükség. Ezt a hash-t hívják jelképes. Az adatok elosztása ezen token alapján történik.

Az alapértelmezett particionáló a Murmur3Partitioner, amely egyenletesen elosztott tokeneket hoz létre egy fix tartományon belül. Minden csomópont egy vagy több tartományt birtokol ebből a tartományból, és a tartományok gyűjteménye alkotja a token gyűrűMivel az értékadás hash, és nem érték alapján történik, egy csomópont hozzáadása csak az általa átvett tartományokat mozgatja át, a teljes adathalmaz átrendezése helyett.

Előfeltételek a Cassandra Cluster

A fürt beállításához a következő követelmények vonatkoznak.

  1. Több géppel kell rendelkezned, fizikai vagy virtuális, amelyek csomópontként működnek.
  2. A csomópontoknak képesnek kell lenniük elérni egymást a hálózaton. A csomópontok között a 7000-es portnak kell nyitva lennie a csomópontok közötti forgalomhoz, a 7001-esnek, ha a TLS engedélyezve van, és a 9042-es portnak a klienskapcsolatokhoz.
  3. A Linuxot minden csomópontra telepíteni kell. Ez a platform Cassandra tesztelve és támogatva van a következőn:.
  4. Apache Cassandra minden csomópontra telepíteni kell, ugyanazon verzióval. A vegyes verziók nem tudnak sémamegállapodást végrehajtani.
  5. Egy támogatott JDK minden gépre telepíteni kell, beállítva a JAVA_HOME értéket.
  6. Az órákat NTP-vel kell szinkronizálni. Cassandra Az ütköző írási hibákat időbélyeg alapján oldja fel, így az órajel-eltolódás csendben helytelen eredményeket produkál.

Az utolsó követelmény a leggyakrabban kihagyott, és inkább adatproblémákat okoz, mint indítási hibákat.

.

Hogyan telepítsük Cassandra Cluster Linux alatt

Cassandra minden gépre telepíteni kell, mielőtt bármelyik is csatlakozhatna egy fürthöz. Az alábbi képernyőképek a DataStax Enterprise grafikus telepítőjéből származnak, amely a szokásos útvonal volt, amikor ezt a bemutatót írták. Ez a telepítő már nem érhető el közösségi használatra, ezért a jelenlegi megközelítést először adjuk meg, és a varázsló referenciaként következik.

Jelenlegi módszer: telepítése Apache Cassandra csomagot vagy bináris tarballt minden csomóponton azonosan, majd ellenőrizze, hogy mindegyik önállóan indul-e el, mielőtt megpróbálná csatlakoztatni őket.

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

Miután egyetlen csomópont tisztán elindult, állítsd le, töröld az adatkönyvtárát, és folytasd az alábbi fürtkonfigurációs szakasszal.

Step 1) Futtassa a Cassandra vállalati kiadás beállítása. Bekapcsolva Linux terminálon futtassa a telepítőt. A következő oldal jelenik meg.

Telepítés Cassandra Cluster Linux alatt

Ez az oldal nem nyújt semmilyen szükséges információt. Csak információt nyújt a Cassandra változat. Tehát lépjen át ezen az oldalon, és nyomja meg a következő gombot.

Step 2) Fogadja el a licencszerződést. A következő gomb megnyomása után a következő oldal jelenik meg.

Telepítés Cassandra Cluster Linux alatt

Ez az oldal a csomagokról és alcsomagokról nyújt információkat Cassandra ami telepítésre kerül. Lent a licencszerződésről fog kérdezni. Jelöld be az „Elfogadom a szerződést” jelölőnégyzetet, majd kattints a Tovább gombra.

Step 3) Telepítse a Buildert, majd kattintson a Tovább gombra. A Tovább gombra kattintva a következő oldal jelenik meg.

Telepítés Cassandra Cluster Linux alatt

Ez az oldal a telepítési lehetőségekre kérdez rá.

  1. Először is kérni fogja a telepítési könyvtárat. Alapértelmezés szerint a saját könyvtárba van telepítve.
  2. Ezután megkérdezi a telepítés típusát, válassza az Egyszerű telepítés lehetőséget.
  3. Ezután a frissítési rendszerről kérdez rá, jelölje be, hogy "nem".
  4. Ezután az alapértelmezett interfészt fogja kérni. Két lehetőség van: telepíthetsz a helyi gépre, vagy kiválaszthatod az IP-címet. Válaszd ki a telepítés IP-címét.
  5. Nyomja meg a következő gombot.

Step 4) Állítsa be a csomópontot, majd kattintson a Tovább gombra. A Tovább gomb megnyomása után a következő oldal jelenik meg.

Telepítés Cassandra Cluster Linux alatt

Ez az oldal a csomópont beállításáról kérdez rá.

  1. Először válassza ki a Csomópont típusa lehetőséget.Cassandra Csomópont'.
  2. Ezután a Ring Name mezőben adja meg a fürt nevét. Cluster A névnek azonosnak kell lennie az ugyanabban a fürtben lévő összes csomópontnál.
  3. Ezután válaszd ki a seedet. A seed az a csomópont, amellyel a többi nem seed csomópont kapcsolatba lép induláskor.
  4. Az adatok megadása után nyomja meg a Tovább gombot.

Step 5) Telepítse a monitorozó ügynököt. A „Tovább” gombra kattintva a következő oldal jelenik meg. Ez az oldal kéri az IP-címet, ahová az ügynököt telepíteni kell.

  1. Az ügynökre a monitorozó konzolhoz van szükség, ahol az összes csomópont egy helyen megfigyelhető.
  2. Az adatok megadása után nyomja meg a Tovább gombot.

Telepítés Cassandra Cluster Linux alatt

Step 6) A telepítéshez kattintson a Tovább gombra. A Tovább gomb megnyomása után a következő oldal jelenik meg.

Telepítés Cassandra Cluster Linux alatt

Most a beállítás készen áll a telepítésre. Nyomja meg a következő gombot.

Step 7) Várja meg a telepítési folyamatot. A következő gomb megnyomása után a következő oldal jelenik meg.

Telepítés Cassandra Cluster Linux alatt

A telepítő megkezdi a telepítést.

Step 8) Kattintson a Befejezés gombra. A telepítés után a következő oldal jelenik meg. Ugyanazon az oldalon látni fogja a pipa jelölését az alapértelmezettként megjelenő opció mellett.

Telepítés Cassandra Cluster Linux alatt

A cassandra.yaml konfigurálása csomópontok összekapcsolásához

A telepítés önmagában nem hoz létre klasztert. A csomópontok csak akkor találják meg egymást, ha a cassandra.yaml fájlban négy beállítás megegyezik, és ez a fájl az a pont, ahol a legtöbb klaszterbeállítás hibázik.

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
  • klaszter_neve minden csomóponton egyeznie kell. Az eltérés a leggyakoribb oka annak, hogy egy csomópont megtagadja a csatlakozást.
  • magok Felsorolja azokat a kapcsolattartási pontokat, amelyekkel egy kezdő csomópont pletykál. Adatközpontonként két vagy három seed elegendő; ha minden csomópontot seedként teszünk, az megakadályozza az automatikus bootstrap-et.ping.
  • figyelő_cím az a cím, amelyet a többi csomópont használ ennek az eléréséhez. Valódi irányítható címnek kell lennie, soha nem localhostnak.
  • endpoint_snitch megmondja Cassandra a rack és az adatközpont elrendezése. GossipingA PropertyFileSnitch a szokásos választás, az értékeket a cassandra-rackdc.properties fájlban kell megadni.

A snitch vagy a klaszter nevének módosítása az adatok létezése után további lépéseket igényel, ezért mindkettőt el kell dönteni az első csomópont elindulása előtt.

Kezdve Cassandra Csomópont

Telepítése után Cassandra Minden csomóponton indítsa el a szervereket, és kövesse az alábbi lépéseket. A sorrend számít: először a kezdő csomópontokat indítsa el, egyenként, és várja meg, amíg mindegyik működő csomópontként jelzi működését, mielőtt elindítaná a következőt. Több csomópont egyidejű indítása token tartományütközésekhez vezethet.

Step 1) Menj a Cassandra telepítési könyvtárat, és indítsd el a szervert.

bin/cassandra -f

Kezdve Cassandra Csomópont

A parancs végrehajtásával a Cassandra a szerver elindul. Itt látható a képernyőkép, ahol a Cassandra szerver indul.

Kezdve Cassandra Csomópont

Nagyjából egy perc múlva a szerver elindul. Indítsa el az egyes csomópont-kiszolgálókat egyesével. Az összes csomópont-kiszolgáló elindítása után a Cassandra A fürt használatra kész.

Step 2) Ellenőrizd, hogy minden csomópont csatlakozott-e, a gyűrű bármelyik csomópontból történő ellenőrzésével.

nodetool status
nodetool describecluster

Minden csomópontnak meg kell jelennie az állapotával UN, ami azt jelenti, hogy Fel és Normál, és a Tulajdonos oszlopnak nagyjából azonos százalékokat kell mutatnia. A descluster kimenetében egyetlen sémaverzió megerősíti, hogy minden csomópont egyetért a sémával.

Három tünet jellemzi a legtöbb hibát. Egy soha meg nem jelenő csomópont általában nem egyező cluster_name-mel vagy blokkolt 7000-es porttal rendelkezik. Egy csomópont elakadt a következőn: UJA csatlakozó továbbra is streameli az adatokat, és egyszerűen időre van szüksége egy nagy klaszteren. A rendkívül egyenlőtlen tulajdonjog egy hibás konfigurációra utal, ahol a csomópontok rossz rackbe vagy adatközpontba kerültek.

Ha a gyűrű egészséges, az egyes kulcstartományok replikációs beállításai határozzák meg, hogyan terjednek az adatok rajta keresztül, a leírásban leírtak szerint. Cassandra keyspace oktatóanyag és a Cassandra építészet bontás.

GYIK

Három, ami megegyezik a háromszoros standard replikációs tényezővel. Ez lehetővé teszi a QUORUM olvasási és írási műveleteinek folytatását, miközben az egyik csomópont karbantartás vagy hiba miatt nem működik.

Nem. A seedek csak kapcsolódási pontként szolgálnak az indítás és a pletykák során. Adatokat tárolnak, mint bármely más csomópont, és egy elvesztése nincs hatással a futó fürtre.

Telepítsd ugyanazt a verziót, irányítsd át a meglévő seedekre, és indítsd el. Automatikusan elindul a token tartományok streamelésével. Utána futtasd a nodetool cleanup parancsot a többi csomóponton.

Az adatmennyiség, a replikációs tényező és az átviteli sebességcélok alapján a mesterséges intelligencia egy ésszerű kezdő csomópontszámot állít elő. Ezt terheléses teszttel ellenőrizd, mivel a tömörítés és a javítási többletterhelés munkaterhelés-specifikus.

Igen. A system.log fájl és a cassandra.yaml együttes megadása általában gyorsan feltárja az okot, ami leggyakrabban egy klaszternév-eltérés, egy blokkolt port vagy a localhostként megadott listen_address.

Foglald össze ezt a bejegyzést a következőképpen: