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. Wenn wir im Detail beobachten, dass jede Spaltenfamilie mehrere Spaltenzahlen hat. Die im Plattenspeicher gespeicherten Spaltenwerte. Jede Zelle der Tabelle verfügt über eigene Metadaten wie Zeitstempel und andere Informationen.

Speichermechanismus in HBase
In HBase sind die folgenden Schlüsselbegriffe für das Tabellenschema aufgeführt
- Tabelle : Sammlung vorhandener Zeilen.
- Zeile : Sammlung von Spaltenfamilien.
- Spaltenfamilie : Sammlung von Spalten.
- Spalte : Sammlung von Schlüssel-Wert-Paaren.
- Namespace : Logische Gruppierung von Tabellen.
- Zelle : Ein Tupel {Zeile, Spalte, Version} gibt genau eine Zelldefinition in HBase an.
In diesem Tutorial lernen Sie:
- Speichermechanismus in HBase
- HBase-Datenmodell
- HBase-Architektur und ihre wichtigen Komponenten
- HBase-Lese- und Schreibdaten erklärt
- HBase-Anwendungsfälle
- HBASE vs. HDFS
Spaltenorientierte oder zeilenorientierte Speicher
Spalten- und zeilenorientierte Speicher unterscheiden sich in ihrem Speichermechanismus. Wie wir alle wissen, speichern traditionelle relationale Modelle Daten im zeilenbasierten Format wie in Datenzeilen. Spaltenorientierte Speicher speichern Datentabellen in Form von Spalten und Spaltenfamilien.
Die folgende Tabelle enthält einige wichtige Unterschiede zwischen diesen beiden Speichern
Spaltenorientierte Datenbank | Zeilenorientierte Datenbank |
|
|
|
|
HBase-Datenmodell
Das HBase-Datenmodell besteht aus einer Reihe von Komponenten, die aus Tabellen, Zeilen, Spaltenfamilien, Zellen, Spalten und Versionen bestehen. HBase-Tabellen enthalten Spaltenfamilien und Zeilen mit Elementen, die als Primärschlüssel definiert sind. Eine Spalte in der HBase-Datenmodelltabelle repräsentiert Attribute für die Objekte.
Das HBase-Datenmodell besteht aus folgenden Elementen:
- Satz von Tabellen
- Jede Tabelle mit Spaltenfamilien und Zeilen
- Für jede Tabelle muss ein Element als Primärschlüssel definiert sein.
- 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 dem Objekt entsprechendes Attribut
HBase-Architektur und ihre wichtigen Komponenten
Unten finden Sie eine detaillierte Architektur von HBase mit Komponenten:
Die HBase-Architektur besteht hauptsächlich aus vier Komponenten
- HMaster
- HRegionserver
- HRegions
- Tierpfleger
- HDFS
HMaster:
HMaster in HBase ist die Implementierung eines Master-Servers in der HBase-Architektur. Es fungiert als Überwachungsagent zur Überwachung aller im Cluster vorhandenen Region Server-Instanzen und als Schnittstelle für alle Metadatenänderungen. In einer verteilten Clusterumgebung wird Master auf NameNode ausgeführt. Der Master führt mehrere Hintergrundthreads aus.
Das Folgende sind wichtige Rollen, die HMaster in HBase spielt.
- Spielt eine wichtige Rolle in Bezug auf die Leistung und die 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 verwalten.
- Wenn ein Client ein Schema und Metadatenvorgänge ändern möchte, übernimmt HMaster die Verantwortung für diese Vorgänge.
Einige der von HMaster Interface bereitgestellten Methoden sind hauptsächlich metadatenorientierte Methoden.
- Tabelle (createTable, removeTable, enable, disable)
- ColumnFamily (Spalte hinzufügen, Spalte ändern)
- Region (verschieben, zuweisen)
Der Client kommuniziert bidirektional mit HMaster und ZooKeeper. Für Lese- und Schreibvorgänge wird direkt mit HRegion-Servern Kontakt aufgenommen. HMaster weist Regionsservern Regionen zu und überprüft im Gegenzug den Integritätsstatus von Regionsservern.
In der gesamten Architektur haben wir mehrere Regionsserver. Hlog in Regionsservern vorhanden, auf denen alle Protokolldateien gespeichert werden.
HBase Regions Server:
Wenn 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 obligatorische HMaster-Berechtigung für den Client erforderlich. Der Client benötigt HMaster-Hilfe, wenn Vorgänge im Zusammenhang mit Metadaten und Schemaänderungen erforderlich sind.
HRegionServer ist die Region Server-Implementierung. Es ist für die Bereitstellung und Verwaltung von Regionen oder Daten verantwortlich, die in einem verteilten Cluster vorhanden sind. Die Regionsserver werden auf Datenknoten ausgeführt, die im Hadoop-Cluster vorhanden sind.
HMaster kann mit mehreren HRegion-Servern in Kontakt treten und führt die folgenden Funktionen aus.
- Hosting und Verwaltung von Regionen
- Regionen automatisch teilen
- Bearbeitung von Lese- und Schreibanforderungen
- Direkt mit dem Kunden kommunizieren
HBase-Regionen:
HRegions sind die Grundelemente des HBase-Clusters, das aus der Verteilung von Tabellen besteht und aus Spaltenfamilien besteht. Es enthält mehrere Speicher, einen für jede Spaltenfamilie. Es besteht hauptsächlich aus zwei Komponenten, Memstore und Hfile.
ZooKeeper:
HBase Zookeeper ist ein zentraler Überwachungsserver, der Konfigurationsinformationen verwaltet und eine verteilte Synchronisierung ermöglicht. Die verteilte Synchronisation besteht darin, auf die verteilten Anwendungen zuzugreifen, die im gesamten Cluster ausgeführt werden, und für die Bereitstellung von Koordinierungsdiensten zwischen Knoten verantwortlich zu sein. Wenn der Client mit Regionen kommunizieren möchte, muss sich der Client des Servers zuerst an ZooKeeper wenden.
Es ist ein Open-Source-Projekt und bietet so viele wichtige Dienstleistungen.
Dienstleistungen von ZooKeeper
- Pflegt Konfigurationsinformationen
- Bietet verteilte Synchronisation
- Client-Kommunikationsaufbau mit Regionsservern
- Bietet kurzlebige Knoten, für die verschiedene Regionsserver dargestellt werden
- Master Server Verwendbarkeit von kurzlebigen Knoten zum Ermitteln verfügbarer Server im Cluster
- So verfolgen Sie Serverausfälle und Netzwerkpartitionen
Master- und HBase-Slave-Knoten (Regionsserver) haben sich bei ZooKeeper registriert. Der Client benötigt Zugriff auf die ZK-Quorumkonfiguration (zookeeper), um eine Verbindung mit Master- und Regionsservern herstellen zu können.
Während eines Ausfalls von Knoten, die im HBase-Cluster vorhanden sind, löst ZKquoram Fehlermeldungen aus und beginnt mit der Reparatur der ausgefallenen Knoten.
HDFS:
HDFS ist ein verteiltes Hadoop-Dateisystem, da der Name impliziert, dass es eine verteilte Umgebung für den Speicher bereitstellt und ein Dateisystem ist, das so konzipiert ist, dass es auf Standardhardware ausgeführt werden kann. Es speichert jede Datei in mehreren Blöcken. 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 Hinzufügen von Knoten zum Cluster und Durchführen der Verarbeitung und Speicherung mithilfe der billigen Standardhardware erhält der Client bessere Ergebnisse als mit der vorhandenen.
Hier werden die in jedem Block gespeicherten Daten in 3 Knoten repliziert, wenn ein Knoten ausfällt und kein Datenverlust auftritt. Er verfügt über einen geeigneten Sicherungswiederherstellungsmechanismus.
HDFS nimmt Kontakt mit den HBase-Komponenten auf und speichert eine große Datenmenge verteilt.
HBase-Lese- und Schreibdaten erklärt
Die Lese- und Schreibvorgänge vom Client in die Datei können in der folgenden Abbildung dargestellt werden.
Schritt 1) Der Client möchte Daten schreiben und kommuniziert zunächst mit dem Regions-Server und dann mit den Regionen
Schritt 2) Regionen, die sich an memstore wenden, um die mit der Spaltenfamilie verknüpfte Speicherung zu speichern
Schritt 3) Die ersten Datenspeicher werden im Memstore gespeichert, wo die Daten sortiert werden. Danach werden sie in HFile gespült. Der Hauptgrund für die Verwendung von Memstore besteht darin, Daten in einem verteilten Dateisystem basierend auf dem Zeilenschlüssel zu speichern. Der Memstore wird im Hauptspeicher des Region-Servers abgelegt, während HFiles in HDFS geschrieben werden.
Schritt 4) Der Client möchte Daten aus Regionen lesen
Schritt 5) Der Client kann wiederum direkten Zugriff auf den Mem-Speicher haben und Daten anfordern.
Schritt 6) Der Client wendet sich an HFiles, um die Daten zu erhalten. Die Daten werden vom Client abgerufen und abgerufen.
Der Memstore enthält speicherinterne Änderungen am Speicher. Die Hierarchie der Objekte in HBase-Regionen ist in der folgenden Tabelle von oben nach unten dargestellt.
Tabelle | HBase-Tabelle im HBase-Cluster vorhanden |
Region | HRegionen für die dargestellten Tabellen |
Geschäft | Es speichert pro ColumnFamily für jede Region für die Tabelle |
Memstore |
|
StoreFile | StoreFiles für jeden Store für jede Region für die Tabelle |
Block | In StoreFiles vorhandene Blöcke |
HBase-Anwendungsfälle
Im Folgenden finden Sie Beispiele für HBase-Anwendungsfälle mit einer detaillierten Erläuterung der Lösung für verschiedene technische Probleme
Problemstellung | Lösung |
---|---|
Die Telekommunikationsindustrie steht vor folgenden technischen Herausforderungen
| In HBase werden Milliarden von Zeilen mit detaillierten Anruflisten gespeichert. Wenn der vorhandenen RDBMS-Datenbank monatlich 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 eine schnelle Abfrage durch und zeigt Datensätze an. |
Die Bankenbranche generiert täglich Millionen von Datensätzen. Darüber hinaus benötigt die Bankenbranche eine Analyselösung, mit der Betrug bei Geldtransaktionen aufgedeckt werden kann | Eine ideale Lösung zum Speichern, Verarbeiten und Aktualisieren großer Datenmengen und zum Durchführen von Analysen ist - HBase ist in mehrere Hadoop-Ökosystemkomponenten integriert. |
Davon abgesehen kann HBase verwendet werden
- Wann immer es notwendig ist, schwere Anwendungen zu schreiben.
- Durchführen von Online-Protokollanalysen und Generieren von Compliance-Berichten.
HBase vs. HDFS
HBase läuft auf HDFS und Hadoop. Einige wesentliche Unterschiede zwischen HDFS und HBase bestehen in Bezug auf Datenoperationen und -verarbeitung.
HBASE |
HDFS |
|
|
|
|
|
|
|
|
|
|
Einige typische industrielle IT-Anwendungen verwenden HBase-Vorgänge zusammen mit Hadoop. Zu den Anwendungen gehören Börsendaten, Online-Banking-Datenoperationen und die Verarbeitung. Hbase ist die am besten geeignete Lösungsmethode.
Zusammenfassung
Hbase ist eine der spaltenorientierten verteilten NoSql-Datenbanken, die in Apache Foundation verfügbar sind. HBase bietet mehr Leistung beim Abrufen weniger Datensätze als Hadoop oder Hive. Es ist sehr einfach, nach einem bestimmten Eingabewert zu suchen, da es die Indizierung, Transaktionen und Aktualisierung unterstützt.
Mit Hbase, das in das Hadoop-Ökosystem integriert ist, können wir Online-Echtzeitanalysen durchführen. Es verfügt über ein automatisches und konfigurierbares Sharding für Datasets oder Tabellen und bietet erholsame APIs zum Ausführen der MapReduce-Jobs.