HBase
 sql >> Datenbank >  >> NoSQL >> HBase

Hochverfügbarkeit (Multi-AZ) für die CDP-Betriebsdatenbank

CDP-Betriebsdatenbank (COD) ist eine autonome Transaktionsdatenbank, die von Apache HBase und Apache Phoenix unterstützt wird. Es ist einer der wichtigsten Datendienste, der auf der Cloudera Data Platform (CDP) Public Cloud ausgeführt wird. Sie können direkt von Ihrer CDP-Konsole aus auf COD zugreifen. Mit COD können Anwendungsentwickler jetzt die Leistungsfähigkeit von HBase und Phoenix ohne den Overhead nutzen, der häufig mit Bereitstellung und Verwaltung verbunden ist. COD ist einfach bereitzustellen und selbstverwaltend, was bedeutet, dass Entwickler innerhalb von Minuten eine neue Datenbankinstanz bereitstellen und schnell mit der Erstellung von Prototypen beginnen können. Autonome Funktionen wie Auto-Scaling, Auto-Healing und Auto-Tuning stellen sicher, dass Sie sich keine Sorgen um die Verwaltung und Verwaltung der Datenbank machen müssen.

In diesem Blog teilen wir mit, wie die CDP Operational Database eine hohe Verfügbarkeit für Ihre Anwendungen bereitstellen kann, wenn sie in mehreren Verfügbarkeitszonen in AWS ausgeführt wird.

Um vollständig zu verstehen, was eine Multi-AZ-Bereitstellung ist bedeutet für Ihre Infrastruktur, dass es wichtig ist zu erkennen, wie Amazon Web Services weltweit konfiguriert ist und wie es die Redundanzdienste unabhängig von Ihrem Standort bereitstellt. Wie in der offiziellen Dokumentation von Amazon erläutert, besteht die AWS Cloud aus einer Reihe von Regionen, bei denen es sich um physische Standorte auf der ganzen Welt handelt. Während AZ-Ausfälle nicht offiziell nachverfolgt werden, haben Cloudera-Kunden berichtet, dass sie 1-2 Mal im Jahr AZ-Ausfälle erlebt haben. Daher sind Multi-AZ-Stretch-Bereitstellungen erforderlich, um eine Verfügbarkeit von über 99,95 % zu erreichen.

Jede Region besteht aus mehreren separaten physischen Rechenzentren, die als Availability Zones (AZ) bezeichnet werden . Jedes AZ ist eine eigenständige Einrichtung mit eigener Stromversorgung, Konnektivität und Netzwerkfähigkeiten. Die meisten Regionen beherbergen jeweils 2-3 verschiedene Verfügbarkeitszonen, die eine angemessene Redundanz innerhalb einer bestimmten Region bieten (Ein AZ wird durch einen Regionscode gefolgt von einem Kennbuchstaben dargestellt, z. B. us-west-1a) .

Diese Redundanz wird jedoch nur auf die Speicherschicht (S3) angewendet und existiert nicht für virtuelle Maschinen, die für Ihre Datenbankinstanz verwendet werden. Sollte die Availability Zone, in der sich Ihre Serverinstanzen befinden, aus irgendeinem Grund ausfallen, würde Ihre Datenbank nicht mehr funktionieren, da die gesamte Recheninfrastruktur offline wäre.

Hier kommt die Multi-AZ-Bereitstellung ins Spiel. Eine Multi-AZ-Bereitstellung bedeutet, dass die Recheninfrastruktur für die Master- und Regionsserver von HBase auf mehrere Availability Zones verteilt wird, um sicherzustellen, dass bei einem Ausfall einer einzelnen Availability Zone nur ein Teil der Regionsserver betroffen ist betroffen und Clients schalten automatisch auf die verbleibenden Server in den verfügbaren AZs um. In ähnlicher Weise übernimmt der Backup-Master (unter der Annahme, dass der primäre Master in der AZ mit einem Ausfall war) automatisch die Rolle des ausgefallenen Masters, da er in einer separaten AZ vom primären Master-Server bereitgestellt wird. All dies geschieht automatisch und erfordert keine Einrichtung, keine Verwaltung und keine Aktionen aus Benutzer-/Administratorsicht. Es funktioniert einfach, um sicherzustellen, dass eine Anwendung nicht aufgrund des Verlusts einer einzelnen AZ ausfällt.

Demo

Neu erstellte COD-Datenbanken nutzen automatisch alle konfigurierten Verfügbarkeitszonen in der Umgebung. Daher ist es wichtig, die Umgebung mit den Zonen einzurichten, die wir verwenden möchten.

Zum Beispiel haben wir eine Umgebung mit den folgenden AZs:us-west-1a, us-west-1b und us-west-1c. Wenn wir eine COD-Datenbank bereitstellen, wird sie automatisch in einer Multi-AZ-Methode bereitgestellt – es gibt nichts zu tun! Lassen Sie uns einen Blick hinter die Kulissen werfen und sehen, was sich auf der AWS-Konsole befindet.

COD stellt sicher, dass Worker-Knoten gleichmäßig über konfigurierte AZs verteilt sind. (Masters und Leader werden auch in verschiedenen AZs bereitgestellt, um eine hohe Verfügbarkeit für das ZooKeeper-Quorum bereitzustellen.)

Apache HBase verfügt bereits über integrierte Failover-Funktionen, sodass für den Fall, dass eine AZ offline geht, das System bereits vorhanden ist, um die Dienste Ihrer Datenbank sofort und automatisch fortzusetzen.

Um noch mehr Spaß zu haben, führen wir während unseres Tests einen einfachen HBase-Belastungstest durch. HBase hat ein eingebautes Lasttest-Tool, das wir für einen lang andauernden Schreibtest verwenden können:

hbase ltt -write 10:1024:10 -num_keys 10000000

Lassen Sie uns jetzt einen AZ-Ausfall simulieren und sehen, was passiert. Der einfachste Weg, dies zu tun, ist das Hinzufügen einer neuen Netzwerk-ACL, die den ein- und ausgehenden Datenverkehr eines bestimmten Subnetzes unter ähnlichen Bedingungen wie bei einem echten AWS-Ausfall deaktiviert.

In der ersten Minute sehen wir auf der Statusseite nichts besonders Interessantes, denn aus COD-Sicht ist die Datenbank noch intakt.

Habe aber festgestellt, dass der Client keine Fortschritte mehr macht.

In 10-20 Sekunden erkennt der Master, dass einige der Regionsserver tot sind.

Betrifft der Ausfall den aktiven Master, schaltet HBase automatisch auf das Backup um, das nach 10-20 Sekunden die Rolle übernimmt.

Der Ausfall dauert nicht allzu lange, nach 2-3 Minuten und einigen vorübergehenden Regionsfehlern kann der Client wieder Fortschritte machen. Der Master musste die toten Regionen auf aktive Regionsserver umstellen.

Um das Ende des Ausfalls zu simulieren, machen wir die Erstellung der Netzwerk-ACL rückgängig, indem wir sie löschen. Regionsserver verbinden sich wieder mit dem Master.

Jetzt sind wir wieder da, wo wir ursprünglich angefangen haben. COD hat sich vollständig von dem Ausfall erholt. In den Schreibanfragen können wir zwei Drops sehen:Der erste ist, als der Client zu den verbleibenden Live-Regionsservern wechselte, der zweite etwas später, als der Load Balancer von HBase die Regionen zurück auf die wieder verbundenen Server verschoben hat.

COD auf HDFS

Object Storage in the Cloud ist die Standardspeicherebene für COD und verteilt Daten über 3 Verfügbarkeitszonen im Hintergrund und wird hinter den Kulissen neu ausbalanciert. HBase muss nur einige Verwaltungsarbeiten (Regionswechsel) durchführen, um Regionen von den verbleibenden Servern zu bedienen, was dies zu einem relativ schnellen Vorgang macht.

Für Anwendungsfälle mit hoher Leistung unterstützt COD die Verwendung von HDFS als zugrunde liegenden Speicher. In diesem Bereitstellungsparadigma konfigurieren wir automatisch HDFS-Rack-Awareness für Fehlertoleranz, indem wir eine Blockreplik auf einem anderen Rack platzieren und die Racks Availability Zones zuordnen. Dies bietet Datenverfügbarkeit im Falle eines Netzwerk-Switch-Ausfalls oder einer Partition innerhalb des Clusters. Das Verhalten in der obigen Demo ist also sehr ähnlich zu dem, was Sie sehen würden, wenn Sie COD mit HDFS bereitstellen.

Zusammenfassung

Die Multi-AZ-Bereitstellung ist für hochverfügbare Datenbanken von entscheidender Bedeutung und wird jetzt von COD in AWS als technische Vorschau hinter den Kulissen ohne zusätzliche Kosten unterstützt. Es macht Ihren betrieblichen Workload robuster und zuverlässiger ohne zusätzliche Konfiguration. Es wird allgemein verfügbar sein und bald weitere Cloud-Anbieter (Microsoft, Google) unterstützen.

Wenden Sie sich an Ihr Cloudera-Kontoteam, wenn Sie mehr darüber erfahren möchten, wie Sie von Ihrer Bereitstellung von HBase auf die CDP Operational Database in der Public Cloud migrieren, oder probieren Sie es mit dem Cloudera-Testlauf aus.