Kassandra-Architektur erklärt: Ein umfassendes Tutorial

Veröffentlicht: 2021-03-10

Seit seiner Gründung bei Facebook hat sich Cassandra zu einem der beliebtesten Apache-Projekte entwickelt. Es ist eine weit verbreitete, leistungsstarke und verteilte Open-Source-Datenbank, die das Leben von Softwareingenieuren, Datenwissenschaftlern und Webentwicklern erleichtert.

Zu den Benutzern dieser robusten Datenbanklösung gehören Unternehmen wie IBM, Facebook, Reddit, eBay und Twitter.

Um sich jedoch mit Cassandra vertraut zu machen, müssen Sie seine Architektur kennen, und die Architektur von Apache Cassandra kann etwas schwierig zu verstehen sein.

Aus diesem Grund haben wir den folgenden Einführungsleitfaden zur Cassandra-Architektur erstellt. Es wird Sie mit allen notwendigen Konzepten der Cassandra-Architektur vertraut machen:

Inhaltsverzeichnis

Grundlagen der Kassandra-Architektur

Die Apache Cassandra-Architektur hat keine Master- oder Slave-Knoten. Stattdessen hat es eine ringartige Architektur, bei der die Knoten logisch in einem Ring verteilt sind. Die Architektur ermöglicht die automatische Verteilung von Daten auf alle Knoten. Wie bei HDFS werden Daten in Cassandra für Redundanz über die Knoten repliziert und im Arbeitsspeicher gespeichert. Es verwendet die Hash-Werte der Schlüssel, um Daten auf die Knoten im Cluster zu verteilen.

Die Cassandra-Architektur ermöglicht es dem System, unabhängig von einem einzelnen Fehlerpunkt zu funktionieren. Das heißt, wenn ein Cluster hundert Knoten hat und einer von ihnen ausfällt, würde der Cluster immer noch laufen. Andererseits würde bei Hadoop der Ausfall eines Namensknotens das gesamte System zum Scheitern bringen.

Die Cassandra-Architektur bietet eine hohe Skalierbarkeit, sodass ein Cluster sogar Tausende von Knoten haben kann. Darüber hinaus können Sie einem Cluster einen neuen Knoten hinzufügen, ohne dessen Betrieb zu unterbrechen.

Abgesehen von den oben besprochenen Funktionen unterstützt die Apache Cassandra-Architektur auch mehrere Rechenzentren und ermöglicht die Datenreplikation über Rechenzentren hinweg.

Topologie und Design

Die Cassandra-Architektur basiert auf einer verteilten Systemarchitektur. Die einfachste Version von Cassandra kann auf einem Computer ausgeführt werden und funktioniert gut mit grundlegenden Tests. Eine Cassandra-Instanz wird als Knoten bezeichnet.

Cassandra bietet horizontale Skalierbarkeit, bei der Sie mehr als einen Knoten als Komponente eines Clusters hinzufügen können. Es arbeitet mit einer Peer-to-Peer-Architektur, bei der jeder Knoten mit jedem anderen Knoten verbunden ist. Jeder Cassandra-Knoten führt alle Datenbankoperationen und Server-Client-Anfragen ohne einen Master-Knoten aus.

Diese verteilte Peer-to-Peer-Architektur stellt sicher, dass ein einziger Fehlerpunkt nicht zum Ausfall des gesamten Systems führt. Cluster in Cassandra können für zahlreiche Funktionen miteinander kommunizieren. Die folgenden Konzepte sind für eine solche Kommunikation von entscheidender Bedeutung:

Tratsch

Gossip ist ein Cassandra-Protokoll, das seine Knoten für die Peer-to-Peer-Kommunikation verwenden. Er informiert einen Knoten über die Zustände der anderen Knoten. Jede Sekunde führt ein Knoten Klatsch mit bis zu drei anderen Knoten durch und jede Klatschnachricht folgt bestimmten Formaten und Versionsnummern, um die Kommunikation effizient zu halten.

Saat

Jeder Knoten in Cassandra konfiguriert eine Liste von Seeds, die eine Liste anderer Knoten ist. Ein Seed-Knoten hat keinen anderen Zweck als das Bootstrapping eines Knotens, wenn er zum ersten Mal einem Cluster beitritt. Nach dem Bootstrap benötigt ein Knoten beim Neustart keinen Seed. Es ist am besten, zwei oder drei Seed-Knoten pro Cassandra-Rechenzentrum zu verwenden und die Seed-Liste einheitlich zu halten.

Datenbankstruktur

In Cassandra werden Daten in Tabellen gespeichert, wobei jede Tabelle in Zeilen und Spalten organisiert ist. Darüber hinaus sind Tabellen in Cassandra in Schlüsselräumen gruppiert, z. B. können Tabellen zu Kundendaten alle in einem Schlüsselraum gruppiert werden, während Tabellen zu Geschäftstransaktionen in einem anderen gespeichert werden können.

Jede Tabelle hat einen Primärschlüssel, der in Clustering-Spalten und Partitionsschlüssel unterteilt ist. Beachten Sie, dass die Clustering-Spalten optional sind. Cassandra verwendet den Partitionsschlüssel, um die Daten zu indizieren. Alle Zeilen mit einem gemeinsamen Partitionsschlüssel bilden eine Datenpartition, die Grundeinheit für die Datenpartitionierung.

Partitionierung in Cassandra

In Cassandra wandelt ein Partitionierer Partitionsschlüssel in Token um. In Cassandra sind mehrere Partitionierungsoptionen vorhanden, wobei Murmur3Partitioner die Standardeinstellung ist. Jedem Token wird ein ganzzahliger Wert zwischen -2^63 bis +2^63-1 zugewiesen, und der Name dieses Bereichs ist der Tokenbereich.

Jede Kassandra besitzt einen Teil dieses Verbreitungsgebiets und besitzt hauptsächlich Daten, die sich auf das Verbreitungsgebiet beziehen. Wir verwenden einen Token, um die Daten genau unter den Knoten zu lokalisieren.

Sie können das Eigentumssystem mit diesem Konzept verstehen: Wenn ein Cluster nur einen Knoten hat, dann würde dieser Knoten den gesamten Token-Bereich besitzen. Mit dem Hinzufügen weiterer Knoten würde der Besitz des Token-Bereichs entsprechend aufgeteilt werden.

Virtuelle Knoten

Cassandra vereinfacht die Herausforderungen bei der Tokenberechnung und -zuweisung durch die Verwendung virtueller Knoten, auch bekannt als Vnodes.

Es teilt einen Cluster in zahlreiche virtuelle Knoten auf, um Token zuzuweisen, und jeder physische Knoten erhält eine gleiche Anzahl von Vnodes. Die Standardanzahl von Vnodes im Besitz eines Knotens ist 256. Sie können dies auch festlegen, indem Sie die Eigenschaft num_tokens verwenden. Wenn Sie einem Cluster einen neuen Knoten hinzufügen, weist der Tokenzuweisungsalgorithmus die erforderlichen Token mithilfe der Vnodes zu.

Reproduzieren

Cassandra repliziert die in jedem Schlüsselraum vorhandenen Daten mit einem Replikationsfaktor. Ein primäres Replikat der Daten verbleibt beim Knoten des Tokenbesitzers, während der Rest von Cassandra durch seine Replikatplatzierungsstrategie auf bestimmten Knoten platziert wird. Beachten Sie, dass alle Replikate für die meisten Datenbankoperationen gleich wichtig sind.

Zwei Einstellungen wirken sich auf die Replikationsplatzierung in Cassandra aus, nämlich Snitch und die Replikationsstrategie. Snitch bestimmt das Rechenzentrum und das Rack, zu dem ein Knoten gehört. Sie sind dafür verantwortlich, Cassandra über die Topologie zu informieren, um die Dinge effizient zu halten.

Die Replikationsstrategie wird auf Schlüsselraumebene festgelegt, und es gibt zwei davon: NetworkTopologyStrategy und Simple Strategy. Ersteres ist ein Rack und Rechenzentrum bewusst, letzteres nicht.

CAP-Theorem

Jedes verteilte System arbeitet nach dem CAP-Theorem. Gemäß diesem Theorem kann jedes verteilte System zwei der drei Eigenschaften Konsistenz, Verfügbarkeit und Partitionstoleranz richtig liefern.

In Cassandra können Sie zwischen Verfügbarkeit und Konsistenz wählen. Das bedeutet, dass die Daten entweder hochkonsistent mit geringerer Verfügbarkeit oder hochverfügbar mit geringer Konsistenz sein können.

Das Konzept, eine bestimmte Anzahl von Bestätigungen anzufordern, wird als einstellbare Konsistenz bezeichnet, und Sie können es auf der Ebene der einzelnen Abfragen anwenden.

Schreibprozess

Dabei werden die Daten in ein Kommentarprotokoll auf einer Platte geschrieben und dann entsprechend dem Hashwert an einen zuständigen Knoten gesendet.

Danach schreiben die Knoten Daten in eine In-Memory-Tabelle namens memtable, von wo aus die Daten in eine „sstable“ im Speicher geschrieben werden. Als nächstes wird es auf die eigentliche Tabelle aktualisiert.

Wenn der verantwortliche Knoten aus irgendeinem Grund ausfällt, werden die Daten auf einen anderen Knoten geschrieben.

Erfahren Sie mehr über die Kassandra-Architektur

Wenn Sie die Architektur von Apache Cassandra verstehen, können Sie besser verstehen, wie diese Lösung funktioniert. Inzwischen wissen Sie auch, warum Cassandra sich von der Konkurrenz abhebt und warum es so beliebt ist.

Wenn Sie mehr über Datenbanken erfahren möchten, können Sie sich die folgenden Ressourcen ansehen:

SQL für Data Science: Warum SQL, Liste der Vorteile und Befehle

Die 20 häufigsten Fragen und Antworten zu SQL-Interviews [Für Studienanfänger]

Kostenloser SQL-Online-Kurs mit Zertifikat [2021]

Wenn Sie andererseits nach einer personalisierten Lernerfahrung suchen, empfehlen wir die Teilnahme an einem Data-Science-Kurs. Bei upGrad bieten wir ein PG Diploma in Data Science und einen Master of Science in Data Science an . Diese Kurse vermitteln Ihnen alle notwendigen Fähigkeiten, um ein Data Science-Profi zu werden.

Fazit

Wenn Sie mehr über das Big Data-Programm erfahren möchten, schauen Sie sich unser PG Diploma in Software Development Specialization in Big Data-Programm an, das für Berufstätige konzipiert ist und mehr als 7 Fallstudien und Projekte bietet, 14 Programmiersprachen und Tools abdeckt, praktische Hand- auf Workshops, mehr als 400 Stunden gründliches Lernen und Unterstützung bei der Stellenvermittlung bei Top-Unternehmen.

Sehen Sie sich unsere anderen Softwareentwicklungskurse bei upGrad an.

Mit innovativem Curriculum in Big Data

MODERNER LEHRPLAN IN BIG DATA VON IIIT-B
Fortgeschrittenes Zertifikatsprogramm in Big Data vom IIIT Bangalore