GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nastavit replikaci Cassandra na Ubuntu 16.04

Pokud máte data, která nejsou vhodná pro relační databáze, je pravděpodobné, že hledáte řešení NoSQL. Možnosti NoSQL jsou rozmanité, Aerospike, MongoDB, Redis a mnoho dalších se snaží problém velkých dat vyřešit různými způsoby. V tomto článku se zaměříme na replikaci s cassandrou. Tato databáze ve skutečnosti dostala název z řecké mytologie, cassandra byla věštkyně, která vždy správně předpovídala budoucnost, ale všichni jí nevěřili. Tvůrci této databáze tedy předpovídají, že NoSQL v budoucnu nahradí relační databáze, ale neočekávají, že jim lidé z RDBMS uvěří.

Požadavky

Chcete-li postupovat podle tohoto článku, měli byste mít nastaveny 3 uzly jeden po druhém pomocí našeho předchozího průvodce nastavením cassandry. Měli byste mít všechny tři uzly v provozu a tři terminálová okna s relací ssh v každém z nich. Až to budete mít, začneme spojovat uzly Cassandra do jednoho shluku.

Vytvoření clusteru

Jste-li přihlášeni jako uživatel Cassandra, musíte upravit konfiguraci Cassandry v každém ze tří uzlů. Soubor se jmenuje cassandra.yaml

nano ~/conf/cassandra.yaml

Toto je třeba nakonfigurovat na všech 3 serverech. Řádek semen lze zadat na jeden server a poté zkopírovat, ale adresy IP každého serveru musí být zadány jako pravé.

cluster_name: 'Test Cluster'

seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: "your-server-ip,your-server-ip-2,your-server-ip-3"

listen_address: your-server-ip

rpc_address: your-server-ip

Chcete-li nastavit entpoint snitch, vložte tuto jednolinku do všech tří uzlů:

sed -i 's/endpoint_snitch: SimpleSnitch/endpoint_snitch: GossipingPropertyFileSnitch/g' ~/conf/cassandra.yaml

A použijte tento příkaz k připojení bootstrap řádku na konec souboru.

echo 'auto_bootstrap: false' >> ~/conf/cassandra.yaml

Snitch, který jsme nastavili, má nekompatibilní název datového centra, dc1 místo datacenter1, takže to opravíme na všech třech uzlech:

sed -i 's/dc=dc1/dc=datacenter1/g' ~/conf/cassandra-rackdc.properties

V případě potřeby restartujte všechny tři uzly a poté by stav sh bin/nodetool měl získat něco takového:

Další věc, kterou musíme udělat, je připojit se ke konzole z jednoho z uzlů do druhého uzlu. Po cqlsh musíme zadat adresu serveru a port 9042 takto:

cqlsh ip.addr.of.node 9042

Místní přihlášení hostitele pouze pomocí cqlsh nebude fungovat.

Nastavení replikace

Pokud vás zajímá, proč jsme změnili výchozí konfiguraci snitch, teď to vysvětlím. Obecně existují dvě replikační strategie s Cassandrou. SimpleStrategy a NetworkTopologyStrategy. První používá výchozí snitch, druhý používá ty, které jsme nastavili. Tuto pokročilou strategii potřebujeme, pokud chceme mít snadné škálování clusteru. S touto strategií můžete přidat více uzlů v jiném datovém centru a rozšířit cluster po celém světě.

Takže uvnitř konzoly cqlsh musíme napsat toto:

CREATE KEYSPACE linoxide WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1' : 3};

Vytvoří nový klíčový prostor s názvem linoxide s replikací nastavenou pomocí NetworkTopologyStrategy a vytvoří 3 repliky v datovém centru1.

Dobře, uvidíme, co jsme vytvořili. Příkaz je tučně, výstup je zbytek.

SELECT * FROM system_schema.keyspaces;
 keyspace_name | durable_writes | replication
--------------------+----------------+---------------------------------------------------------------------------------------
linoxide | True | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'datacenter1': '3'}
system_auth | True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '1'}
system_schema | True | {'class': 'org.apache.cassandra.locator.LocalStrategy'}
system_distributed | True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'}
system | True | {'class': 'org.apache.cassandra.locator.LocalStrategy'}
system_traces | True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '2'}

Ukončeme cqlsh a vydáme příkaz nodetool ještě jednou, abychom viděli změnu v clusteru.

nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 45.33.77.49 250.7 KiB 256 100.0% 34689c1e-939c-4bd3-8774-ac4534880744 rack1
UN 45.56.109.42 188.02 KiB 256 100.0% 7542e062-d6d3-473a-b79c-4f5e11547c1f rack1
UN 45.33.69.15 236.58 KiB 256 100.0% 2f10690c-1e6e-4297-bda6-c3fb36279495 rack1

Všimněte si, že každý uzel má nyní 100 % dat, zatímco dříve to bylo 66 %. To je kvůli replikačnímu faktoru 3, který jsme nastavili, nyní máme jednu kopii dat na každém uzlu.

Závěr

Takže jsme nastavili cluster Cassandra s replikací. Odtud můžete přidávat další uzly, stojany a datová centra, můžete importovat libovolné množství dat a měnit faktor replikace ve všech nebo některých datových centrech. Způsoby, jak toho dosáhnout, najdete v oficiální dokumentaci Cassandry. Doufám, že vám tato příručka pomohla ponořit se do budoucnosti databázové technologie a že jste se rozhodli věřit Cassandře. Děkuji za přečtení a přeji hezký den.


Ubuntu
  1. Jak nainstalovat Cassandru na Ubuntu 18.04

  2. Jak nastavit HAProxy v Ubuntu 16.04

  3. Nastavení serveru Rsyslog na Ubuntu 20.04 – Jak na to?

  1. Jak nastavit UFW Firewall na Ubuntu 18.04

  2. Jak nastavit Elasticsearch na Ubuntu 18.04 a 16.04 LTS

  3. Jak nastavit replikaci MariaDB Master Slave na Ubuntu 18.04

  1. Jak nainstalovat Cassandru na Ubuntu

  2. Jak nastavit server OpenVPN na Ubuntu 20.04

  3. Jak nainstalovat Apache Cassandra na Ubuntu 18.04