HBase Architektur: Anwendungsfälle, Komponenten und Datenmodell
HBase ArchiStruktur und ihre wichtigen Komponenten
Die HBase-Architektur besteht im Wesentlichen aus vier Komponenten
- HMeister
- HRegionserver
- HRegionen
- Tierpfleger
- HDFS
Nachfolgend finden Sie eine detaillierte Architektur von HBase mit Komponenten:

HMeister
HMeister in HBase ist die Implementierung eines Master-Servers in der HBase-Architektur. Er fungiert als Überwachungsagent, um alle im Cluster vorhandenen Region-Server-Instanzen zu überwachen, und fungiert als Schnittstelle für alle Metadatenänderungen. In einer verteilten Clusterumgebung läuft der Master auf NameNode. Der Master führt mehrere Hintergrund-Threads aus.
Im Folgenden sind die wichtigen Rollen aufgeführt, die HMaster in HBase ausführt.
- Spielt eine entscheidende Rolle in Bezug auf Leistung und Wartung der Knoten im Cluster.
- HMaster bietet Administratorleistung und verteilt Dienste an verschiedene Regionsserver.
- HMaster weist Regionsservern Regionen zu.
- HMaster verfügt über Funktionen wie die Steuerung des Lastausgleichs und des Failovers, um die Last über die im Cluster vorhandenen Knoten zu bewältigen.
- Wenn ein Client ein Schema oder Metadatenvorgänge ändern möchte, übernimmt HMaster die Verantwortung für diese Vorgänge.
Einige der von der HMaster-Schnittstelle bereitgestellten Methoden sind in erster Linie metadatenorientierte Methoden.
- Tabelle (createTable, removeTable, aktivieren, deaktivieren)
- ColumnFamily (Spalte hinzufügen, Spalte ändern)
- Region (verschieben, zuweisen)
Der Client kommuniziert bidirektional mit HMaster und ZooKeeper. Für Lese- und Schreibvorgänge nimmt er direkten Kontakt mit HRegion-Servern auf. HMaster weist Regionen Regionsservern zu und überprüft wiederum den Integritätsstatus der Regionsserver.
In der gesamten Architektur verfügen wir über mehrere Regionsserver. Auf den Regionsservern ist Hlog vorhanden, das alle Protokolldateien speichert.
HBase-Regionsserver
Wenn der HBase Region Server Schreib- und Leseanforderungen vom Client empfängt, weist er die Anforderung einer bestimmten Region zu, in der sich die eigentliche Spaltenfamilie befindet. Der Client kann jedoch direkt mit HRegion-Servern Kontakt aufnehmen. Für die Kommunikation mit HRegion-Servern ist keine zwingende HMaster-Berechtigung für den Client erforderlich. Der Client benötigt die Hilfe von HMaster, wenn Vorgänge im Zusammenhang mit Metadaten- und Schemaänderungen erforderlich sind.
HRegionServer ist die Region-Server-Implementierung. Er ist für die Bereitstellung und Verwaltung von Regionen oder Daten in einem verteilten Cluster verantwortlich. Die Region-Server laufen auf Datenknoten im Hadoop-Cluster.
HMaster kann mit mehreren HRegion-Servern Kontakt aufnehmen und führt die folgenden Funktionen aus.
- Hosten und Verwalten von Regionen
- Regionen automatisch aufteilen
- Bearbeitung von Lese- und Schreibanfragen
- Direkte Kommunikation mit dem Kunden
HBase-Regionen
HRegions sind die grundlegenden Bauelemente eines HBase-Clusters, der aus der Verteilung von Tabellen besteht und aus Spaltenfamilien besteht. Er enthält mehrere Speicher, einen für jede Spaltenfamilie. Er besteht hauptsächlich aus zwei Komponenten, nämlich Memstore und Hfile.
Zookeeper
HBase Zookeeper ist ein zentralisierter Überwachungsserver, der Konfigurationsinformationen verwaltet und verteilte Synchronisierung bereitstellt. Die verteilte Synchronisierung dient dem Zugriff auf die verteilten Anwendungen, die im Cluster ausgeführt werden, und ist für die Bereitstellung von Koordinierungsdiensten zwischen Knoten verantwortlich. Wenn der Client mit Regionen kommunizieren möchte, muss der Client des Servers zuerst ZooKeeper kontaktieren.
Es ist ein Open-Source-Projekt und bietet viele wichtige Dienste.
Dienstleistungen erbracht von Zookeeper
- Verwaltet Konfigurationsinformationen
- Bietet verteilte Synchronisierung
- Einrichtung der Client-Kommunikation mit Regionsservern
- Stellt kurzlebige Knoten bereit, die verschiedene Regionsserver darstellen
- Nutzbarkeit temporärer Knoten durch Masterserver zum Auffinden verfügbarer Server im Cluster
- Zur Verfolgung von Serverausfällen und Netzwerkpartitionen
Master- und HBase-Slave-Knoten (Regionsserver) haben sich bei ZooKeeper registriert. Der Client benötigt Zugriff auf die Quorumkonfiguration von ZK (Zookeeper), um eine Verbindung mit Master- und Regionsservern herzustellen.
Bei einem Ausfall der im HBase-Cluster vorhandenen Knoten löst ZKquoram Fehlermeldungen aus und beginnt mit der Reparatur der ausgefallenen Knoten.
HDFS
HDFS ist ein verteiltes Hadoop Dateisystem, wie der Name schon sagt, bietet es eine verteilte Umgebung für die Speicherung und ist ein Dateisystem, das so konzipiert ist, dass es auf Standardhardware ausgeführt werden kann. Es speichert jede Datei in mehreren Blöcken und um die Fehlertoleranz aufrechtzuerhalten, werden die Blöcke über einen Hadoop-Cluster repliziert.
HDFS bietet ein hohes Maß an Fehlertoleranz und läuft auf billiger Standardhardware. Durch das Hinzufügen von Knoten zum Cluster und die Verarbeitung und Speicherung mithilfe der billigen Standardhardware erhält der Client im Vergleich zum vorhandenen System bessere Ergebnisse.
Hier werden die in jedem Block gespeicherten Daten auf 3 Knoten repliziert. Falls ein Knoten ausfällt, kommt es zu keinem Datenverlust, es verfügt über einen ordnungsgemäßen Backup-Wiederherstellungsmechanismus.
HDFS nimmt Kontakt zu den HBase-Komponenten auf und speichert eine große Datenmenge verteilt.
HBase-Datenmodell
HBase-Datenmodell ist ein Satz von Komponenten, der aus Tabellen, Zeilen, Spaltenfamilien, Zellen, Spalten und Versionen besteht. HBase-Tabellen enthalten Spaltenfamilien und Zeilen mit Elementen, die als Primärschlüssel definiert sind. Eine Spalte in der HBase-Datenmodelltabelle stellt Attribute für die Objekte dar.
Das HBase-Datenmodell besteht aus folgenden Elementen:
- Satz Tische
- Jede Tabelle mit Spaltenfamilien und Zeilen
- Jede Tabelle muss über ein als Primärschlüssel definiertes Element verfügen.
- Der Zeilenschlüssel fungiert in HBase als Primärschlüssel.
- Jeder Zugriff auf HBase-Tabellen verwendet diesen Primärschlüssel
- Jede in HBase vorhandene Spalte bezeichnet ein Attribut, das dem Objekt entspricht
HBase-Anwendungsfälle
Nachfolgend finden Sie Beispiele für HBase-Anwendungsfälle mit einer detaillierten Erläuterung der Lösung, die es für verschiedene technische Probleme bietet
Problem Statement | Die Lösung |
---|---|
Telekommunikationsindustrie steht vor folgenden technischen Herausforderungen
|
HBase wird verwendet, um Milliarden von Zeilen detaillierter Anrufaufzeichnungen zu speichern. Wenn der vorhandenen RDBMS-Datenbank pro Monat 20 TB Daten hinzugefügt werden, verschlechtert sich die Leistung. Um in diesem Anwendungsfall eine große Datenmenge zu verarbeiten, ist HBase die beste Lösung. HBase führt schnelle Abfragen durch und zeigt Aufzeichnungen an. |
Das Bankenindustrie generiert täglich Millionen von Datensätzen. Darüber hinaus benötigt die Bankenbranche auch eine Analyselösung, die Betrug bei Geldtransaktionen erkennen kann | Zum Speichern, Verarbeiten und Aktualisieren großer Datenmengen sowie zum Durchführen von Analysen stellt HBase, integriert mit mehreren Komponenten des Hadoop-Ökosystems, eine ideale Lösung dar. |
Abgesehen davon kann HBase verwendet werden
- Immer dann, wenn umfangreiche Bewerbungen geschrieben werden müssen.
- Durchführen von Online-Protokollanalysen und Erstellen von Compliance-Berichten.
Speichermechanismus in HBase
HBase ist eine spaltenorientierte Datenbank und Daten werden in Tabellen gespeichert. Die Tabellen sind nach RowId sortiert. Wie unten gezeigt, verfügt HBase über RowId, eine Sammlung mehrerer Spaltenfamilien, die in der Tabelle vorhanden sind.
Die im Schema vorhandenen Spaltenfamilien sind Schlüssel-Wert-Paare. Bei genauerer Betrachtung hat jede Spaltenfamilie mehrere Spalten. Die Spaltenwerte werden im Festplattenspeicher gespeichert. Jede Zelle der Tabelle hat ihre eigenen Metadaten wie Zeitstempel und andere Informationen.
Kommen wir zu HBase. Im Folgenden sind die wichtigsten Begriffe aufgeführt, die das Tabellenschema darstellen
- Tisch: Sammlung vorhandener Zeilen.
- Reihe: Sammlung von Spaltenfamilien.
- Spaltenfamilie: Sammlung von Spalten.
- Kolonne: Sammlung von Schlüssel-Wert-Paaren.
- Namespace: Logische Gruppierung von Tabellen.
- Zelle: Ein {Zeile, Spalte, Version}-Tupel gibt genau eine Zellendefinition in HBase an.
Spaltenorientierte vs. zeilenorientierte Speicherung
Spalten- und zeilenorientierte Speicher unterscheiden sich in ihrem Speichermechanismus. Wie wir alle wissen, speichern traditionelle relationale Modelle Daten in einem zeilenbasierten Format, also in Form von Datenzeilen. Spaltenorientierte Speicher speichern Datentabellen in Form von Spalten und Spaltenfamilien.
Die folgende Tabelle zeigt einige wichtige Unterschiede zwischen diesen beiden Speichern
Spaltenorientierte Datenbank | Zeilenorientierte Datenbank |
---|---|
Wenn es um Prozesse und Analysen geht, verwenden wir diesen Ansatz. Wie zum Beispiel Online-Analyseverarbeitung und seine Anwendungen. | Online-Transaktionsprozess B. Banken- und Finanzbereiche, nutzen diesen Ansatz. |
Die Datenmenge, die in diesem Modell gespeichert werden kann, ist im Petabyte-Bereich sehr groß | Es ist für eine kleine Anzahl von Zeilen und Spalten ausgelegt. |
HBase-Lese- und Schreibdaten erklärt
Die Lese- und Schreibvorgänge vom Client in die Hfile können im folgenden Diagramm dargestellt werden.
Schritt 1) Der Client möchte Daten schreiben und kommuniziert seinerseits zunächst mit dem Regions-Server und dann mit den Regionen
Schritt 2) Regionen, die Memstore kontaktieren, um die mit der Spaltenfamilie verknüpften Speicherungen vorzunehmen
Schritt 3) Zuerst werden die Daten im Memstore gespeichert, wo die Daten sortiert und anschließend in HFile übertragen werden. Der Hauptgrund für die Verwendung von Memstore besteht darin, Daten in einem verteilten Dateisystem basierend auf Zeilenschlüsseln zu speichern. Memstore wird im Hauptspeicher des Regionsservers abgelegt, während HFiles in HDFS geschrieben werden.
Schritt 4) Der Client möchte Daten aus Regionen lesen
Schritt 5) Im Gegenzug kann der Client direkten Zugriff auf den Mem-Speicher haben und Daten anfordern.
Schritt 6) Kunde wendet sich an HFiles, um die Daten abzurufen. Die Daten werden vom Client abgerufen und abgerufen.
Memstore speichert Änderungen im Speicher im Speicher. Die Hierarchie der Objekte in HBase-Regionen ist in der folgenden Tabelle von oben nach unten dargestellt.
Tisch | Im HBase-Cluster vorhandene HBase-Tabelle |
Region | HRegions für die dargestellten Tabellen |
Shop | Es speichert pro ColumnFamily für jede Region für die Tabelle |
Speicher |
|
StoreFile | StoreFiles für jeden Store für jede Region für die Tabelle |
Blockieren | In StoreFiles vorhandene Blöcke |
HBase vs. HDFS
HBase läuft auf HDFS und Hadoop. Einige wichtige Unterschiede zwischen HDFS und HBase liegen im Hinblick auf Datenoperationen und -verarbeitung.
HBASE | HDFS |
---|---|
Operationen mit geringer Latenz | Vorgänge mit hoher Latenz |
Zufälliges Lesen und Schreiben | Einmal schreiben, mehrmals lesen |
Zugriff über Shell-Befehle, Client-API in Java, REST, Avro oder Thrift | Primärer Zugriff über MR (Map Reduce)-Jobs |
Sowohl die Speicherung als auch die Verarbeitung können durchgeführt werden | Es ist nur für Lagerbereiche gedacht |
Einige typische IT-Industrieanwendungen verwenden HBase-Operationen zusammen mit Hadoop. Zu den Anwendungen gehören Börsendaten, Online-Banking-Datenoperationen und die Verarbeitung von Hbase ist die am besten geeignete Lösungsmethode.
Zusammenfassung
- HBase-Architekturkomponenten: HMaster, HRegion Server, HRegions, ZooKeeper, HDFS
- HMaster in HBase ist die Implementierung eines Masterservers in der HBase-Architektur.
- Wenn der HBase-Regionsserver Schreib- und Leseanforderungen vom Client empfängt, weist er die Anforderung einer bestimmten Region zu, in der sich die eigentliche Spaltenfamilie befindet
- HRegions sind die grundlegenden Bauelemente des HBase-Clusters, die aus der Verteilung von Tabellen bestehen und aus Spaltenfamilien bestehen.
- HBase Zookeeper ist ein zentraler Überwachungsserver, der Konfigurationsinformationen verwaltet und eine verteilte Synchronisierung bereitstellt.
- HDFS bietet ein hohes Maß an Fehlertoleranz und läuft auf billiger Standardhardware.
- Das HBase-Datenmodell ist ein Satz von Komponenten, der aus Tabellen, Zeilen, Spaltenfamilien, Zellen, Spalten und Versionen besteht.
- Spalten- und zeilenorientierte Speicher unterscheiden sich in ihrem Speichermechanismus.