HBase-Architektur, Komponenten, Datenmodell und Anwendungsfälle

Inhaltsverzeichnis:

Anonim

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
  • Wenn es um Prozesse und Analysen geht, verwenden wir diesen Ansatz. Wie Online Analytical Processing und seine Anwendungen.
  • Online-Transaktionsprozesse wie Bank- und Finanzdomänen verwenden diesen Ansatz.
  • Die Datenmenge, die in diesem Modell gespeichert werden kann, ist sehr groß wie in Petabyte
  • Es ist für eine kleine Anzahl von Zeilen und Spalten ausgelegt.

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:

HBase-Architekturdiagramm

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
  • Memstore für jeden Speicher für jede Region für die Tabelle
  • Es sortiert Daten, bevor sie in HFiles gespült werden
  • Die Schreib- und Leseleistung erhöht sich aufgrund der Sortierung
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
  • Speichern von Milliarden von CDR-Protokolldatensätzen (Call Detailed Recording), die von der Telekommunikationsdomäne generiert wurden
  • Bereitstellung des Echtzeitzugriffs auf CDR-Protokolle und Rechnungsinformationen von Kunden
  • Bieten Sie eine kostengünstige Lösung im Vergleich zu herkömmlichen Datenbanksystemen
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

  • Operationen mit geringer Latenz
  • Operationen mit hoher Latenz
  • Zufälliges Lesen und Schreiben
  • Einmal schreiben Viele Male lesen
  • Zugriff über Shell-Befehle, Client-API in Java, REST, Avro oder Thrift
  • Der Zugriff erfolgt hauptsächlich über MR-Jobs (Map Reduce)
  • Speicherung und Prozess können beide durchgeführt werden
  • Es ist nur für Lagerbereiche

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.