GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So erstellen Sie einen Schlüsselraum in Cassandra

Einführung

Cassandra ist eine Software zur Verwaltung von NoSQL-Datenbanken. Organisationen verwenden es, um große Datenmengen verteilt zu verarbeiten. Die Popularität dieser Software stieg aufgrund ihrer hohen Verfügbarkeit und Fehlertoleranz.

Um dies zu erreichen, wechselte Cassandra vom Konzept der Master- oder benannten Knoten zu symmetrisch verteilten P2P-Knoten. Jeder Knoten in einem Cluster hat einen oder mehrere Schlüsselräume, die Daten enthalten.

In diesem Leitfaden erfahren Sie, was ein Schlüsselraum ist, welche Komponenten er enthält und wie Sie einen Schlüsselraum erstellen, ändern und löschen.

Voraussetzungen

  • Kassandra auf Ihrem System installiert
  • Zugriff auf ein Terminal oder Befehlszeile
  • Notwendige Berechtigungen um CQL-Befehle auszuführen

Was ist ein Schlüsselraum in Cassandra?

Ein Schlüsselraum ist ein Datencontainer in Cassandra, ähnlich einer Datenbank in relationalen Datenbankverwaltungssystemen (RDMBS). Ein Cluster hat einen Schlüsselraum pro Anwendung, so viele wie nötig, je nach Anforderungen und Systemnutzung. Schlüsselräume sind völlig separate Einheiten, und die darin enthaltenen Daten stehen in keinem Zusammenhang miteinander.

In einem Cassandra-Cluster ist ein Schlüsselraum ein äußerstes Objekt, das bestimmt, wie Daten auf Knoten repliziert werden. Schlüsselräume bestehen aus Kernobjekten, die als Spaltenfamilien bezeichnet werden (die wie Tabellen in RDBMS sind), Zeilen, die nach Schlüsseln, Datentypen, Rechenzentrumsbewusstsein, Replikationsfaktor und Schlüsselraumstrategie indiziert sind.

Cassandra Keyspace-Komponenten

Es gibt einige wesentliche Schlüsselraumkomponenten, die Sie angeben müssen, wenn Sie einen Schlüsselraum erstellen. Diese Komponenten sind:

Replikationsstrategie

Beim Definieren eines Schlüsselraums gibt die Replikationsstrategie die Knoten an, auf denen Replikate platziert werden. Durch die Verwendung mehrerer Knoten zum Platzieren von Replikaten erreichen Sie Fehlertoleranz, hohe Verfügbarkeit und Zuverlässigkeit.

Es gibt zwei mögliche Strategien:

  1. Einfache Strategie. Verwenden Sie diese Strategie für Test- und Entwicklungsumgebungen und wenn Sie nicht beabsichtigen, einen Cluster in mehr als einem Rechenzentrum bereitzustellen. Der Replikationsfaktor gilt für den gesamten Cluster. Der Partitionierer entscheidet, wo das erste Replikat auf einem Knoten abgelegt wird. Dann werden andere Replikate im Uhrzeigersinn auf den nächsten Knoten verteilt, unabhängig von Rechenzentrum oder Standort.
  2. Netzwerktopologiestrategie. Diese Strategie eignet sich, wenn Sie Ihren Cluster in mehreren Rechenzentren bereitstellen müssen. Sie können es jedoch auch mit einem einzelnen Rechenzentrum verwenden, um es später zu erweitern. Die Netzwerktopologiestrategie funktioniert sowohl für die Produktion als auch für die Entwicklung. Es neigt dazu, Replikate auf Knoten zu platzieren, die sich nicht im selben Rack befinden, um Probleme zu vermeiden, wenn ein Rack ausfällt. Jedes Rechenzentrum kann mit dieser Option einen separaten Replikationsfaktor haben.

Replikationsfaktor

Diese Einstellung definiert, wie viele Replikate einer Zeile auf jedem Knoten gespeichert werden.

Das Minimum sollten zwei Replikate pro Rechenzentrum sein. Das bedeutet, dass der Ausfall eines Knotens den Betrieb einer Replikationsgruppe nicht beeinträchtigt. Daher besteht die empfohlene Einstellung darin, drei Kopien jeder Zeile auf verschiedenen Knoten zu haben, um eine zufriedenstellende Fehlertoleranz zu erreichen.

Als Faustregel gilt, den Replikationsfaktor gleich der Anzahl der Knoten zu halten.

Grundlegende Schlüsselraumsyntax

Sie können einen Schlüsselraum mit unterschiedlichen Replikationseinstellungen erstellen. Nachfolgend finden Sie die grundlegende Syntax zum Erstellen eines Schlüsselraums:

CREATE KEYSPACE keypsace_name WITH replication = {properties};

Die Eigenschaften umfassen verschiedene Einstellungen wie Replikationsstrategie, Faktor oder dauerhafte Schreibvorgänge.

Erstellen Sie einen Schlüsselraum mit Cqlsh

Um einen Schlüsselraum zu erstellen, starten Sie die CQL-Shell:

cqlsh

Erstellen Sie dann gemäß der grundlegenden Syntax einen Schlüsselraum mit dem gewünschten Namen und den gewünschten Replikationseinstellungen.

In diesem Fall erstellen wir test_keyspace mit SimpleStrategy und replication_factor 3 :

CREATE KEYSPACE test_keyspace
WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3};

Verwenden Sie das obige Beispiel, wenn Sie nicht beabsichtigen, auf mehrere Rechenzentren zu erweitern. Wenn Sie nur einen Knoten haben und Cassandra zum Testen verwenden, können Sie außerdem replication_factor festlegen zu 1 .

Für Produktionsumgebungen und mehrere Rechenzentren , erstellen Sie einen Schlüsselraum mit der Netzwerktopologie-Replikationsstrategie.

Geben Sie dazu ein:

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

Der Standardname des Rechenzentrums ist datacenter1 . Um den Namen Ihres Rechenzentrums zu überprüfen, schließen Sie die CQL-Shell und verwenden Sie nodetool :

nodetool status

Wenn Sie mehrere Rechenzentren haben, führen Sie sie alle in der Abfrage mit den jeweiligen Replikationsfaktoren auf.

Die Abfrage für zwei Rechenzentren sieht beispielsweise so aus:

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

Schlüsselraum überprüfen

Da die Ausgabe keine Antwort auf eine erfolgreiche Schlüsselraumerstellung enthält, verwenden Sie diesen Befehl, um zu überprüfen, ob der Schlüsselraum in der Liste enthalten ist:

DESCRIBE KEYSPACES;

Das System gibt eine Liste aller verfügbaren Cassandra-Schlüsselräume zurück. Wir haben die beiden Schlüsselräume, die wir in den obigen Beispielen erstellt haben, hervorgehoben. Es gibt ein paar Standardschlüsselräume, die mit der Cassandra-Installation geliefert werden.

Durable Writes deaktivieren

In Cassandra schreiben die durable_writes Konfiguration ist true standardmäßig. Sie können es deaktivieren, aber nur für die NetworkTopologyStrategy . Diese Option teilt Cassandra mit, ob es commitlog verwenden soll um Aktualisierungen im ausgewählten Schlüsselraum vorzunehmen.

Wenn Sie versuchen, durable_writes zu deaktivieren Beim Erstellen eines Schlüsselraums mit SimpleStrategy erhalten Sie eine Warnung, dies nicht zu tun. Der Grund dafür ist, dass Sie Ihre Daten verlieren können, wenn Sie die Daten nicht von memtable synchronisiert haben zu sstable , und Ihr Rechenzentrum fällt aus.

Zum Deaktivieren von durable_writes Geben Sie beim Erstellen eines Schlüsselraums diese Abfrage ein:

CREATE KEYSPACE keyspace_durwrites
WITH replication = {'class':'NetworkTopologyStrategy', 'datacenter1' : 3}
AND DURABLE_WRITES = false;

Dauerhafte Schreibvorgänge überprüfen

Sie können die Abfrage überprüfen, die während der Schlüsselraumerstellung verwendet wurde, indem Sie den Schlüsselraum beschreiben. Die durable_writes Teil erscheint auch:

DESCRIBE keyspace_durwrites

Um die durable_writes zu überprüfen Einstellungen für alle Schlüsselräume, Abfrage system_schema :

SELECT * FROM system_schema.keyspaces;

Die Ausgabe zeigt alle Keyspaces und ihre Einstellungen, einschließlich durable_writes .

Keyspace verwenden

Um einen Schlüsselraum in Cassandra auszuwählen und Aktionen darauf auszuführen, verwenden Sie das Schlüsselwort USE .

Die Syntax lautet:

USE keyspace_name

Zum Beispiel:

USE keyspace_durwrites;

Die CQL-Shell wechselt zum Namen des angegebenen Schlüsselraums. Verwenden Sie denselben Befehl mit einem anderen Namen, um den aktuellen Schlüsselraum zu ändern.

Schlüsselraum ändern

Nachdem Sie einen Schlüsselraum erstellt haben, können Sie die Konfiguration mit dem Schlüsselwort ALTER ändern .

Das Einzige, was Sie nicht ändern können, ist der Name des Schlüsselraums . Abgesehen davon können Sie die Replikationsstrategie, den Replikationsfaktor und dauerhafte Schreibvorgänge ändern.

Befolgen Sie zum Ändern eines Schlüsselraums die gleiche Syntax wie beim Erstellen, verwenden Sie jedoch ALTER statt CREATE . Ändern Sie die gewünschten Werte.

Zum Beispiel:

ALTER KEYSPACE keyspace_durwrites
WITH replication = {'class':'NetworkTopologyStrategy', 'datacenter1' : 2}
AND DURABLE_WRITES = true;

Um zu überprüfen, ob die Änderungen wirksam wurden, verwenden Sie DESCRIBE Stichwort:

Das obige Bild zeigt die Keyspace-Konfiguration vor und nach der Änderung.

Schlüsselraum verwerfen oder löschen

Wenn Sie einen Schlüsselraum löschen, wird er aus dem System gelöscht. Der DROP Schlüsselwort entfernt alle Spaltenfamilien aus dem Schlüsselraum sowie Indizes und Datentypen.

Um einen Schlüsselraum in Cassandra zu löschen, verwenden Sie diese Syntax:

DROP keyspace_name;

Zum Beispiel:

DROP keyspace_durwrites;

Um sicherzustellen, dass Sie den Schlüsselraum gelöscht haben, verwenden Sie DESCRIBE Abfrage.


Cent OS
  1. So erstellen Sie eine Tabelle in Hive

  2. So erstellen Sie eine Subdomain

  3. So erstellen Sie eine Subdomain

  4. So erstellen Sie einen sudo-Benutzer unter CentOS 7

  5. So erstellen Sie einen virtuellen Datenoptimierer (VD0) in CentOS/RHEL 7 und 8

So erstellen Sie einen Sudo-Benutzer unter CentOS

So installieren Sie Apache Cassandra unter CentOS 6

So installieren Sie Textpattern unter CentOS 7

So installieren Sie Cassandra unter CentOS 7

So erstellen Sie ein XFS-Dateisystem

So erstellen und verwalten Sie Speicherdomänen in RedHat Virtualization (RHV)