Kapitel 1 Einführung in HBase
1.1HBase-Definition
HBase ist eine verteilte, skalierbare NoSQL-Datenbank, die umfangreiche Datenspeicherung unterstützt.
1.2HBase-Datenmodell
Logischerweise ist das Datenmodell von HBase einer relationalen Datenbank sehr ähnlich. Daten werden in einer Tabelle mit Zeilen und Spalten gespeichert. Aus der Perspektive der zugrunde liegenden physischen Speicherstruktur (KV) von HBase ähnelt HBase jedoch eher einer mehrdimensionalen Karte .
1.2.1HBase logische Struktur
Lexikografische Reihenfolge: bitweiser Vergleich.
Das Bild unten ist eine Tabelle, aber eine Tabelle ist oft unterteilt und verschiedenen Bereichen zugeordnet.
1.2.2HBase physische Speicherstruktur
Diese Datenstruktur ist eine detaillierte Erklärung des Geschäfts im Bild oben.
1.2.3 Datenmodell
1)NameSpace
Der Namespace ähnelt dem DataBase-Konzept (Datenbank) einer relationalen Datenbank. Unter jedem Namespace befinden sich mehrere Tabellen. HBase verfügt über zwei integrierte Namespaces, nämlich hbase und default . Hbase speichert die integrierten Tabellen von HBase, und die Standardtabelle ist der von Benutzern standardmäßig verwendete Namespace.
2)Region
Ähnlich dem Tabellenkonzept einer relationalen Datenbank. Der Unterschied besteht darin, dass Sie beim Definieren einer Tabelle in HBase nur die Spaltenfamilie deklarieren müssen und keine bestimmten Spalten deklarieren müssen. Dies bedeutet, dass beim Schreiben von Daten in HBase Felder dynamisch und bei Bedarf angegeben werden können . Daher kann HBase im Vergleich zu relationalen Datenbanken Feldänderungen problemlos bewältigen.
3)Reihe
Jede Datenzeile in der HBase-Tabelle besteht aus einem RowKey und mehreren Spalten (Spalten). Die Daten werden in der Wörterbuchreihenfolge von RowKey gespeichert und können beim Abfragen von Daten nur basierend auf RowKey abgerufen werden, sodass das Design von RowKey sehr ist wichtig.
4)Spalte
Jede Spalte in HBase wird durch ColumnFamily (Spaltenfamilie) und ColumnQualifier (Spaltenqualifizierer) qualifiziert , z. B. info: name, info: age. Beim Erstellen einer Tabelle müssen Sie nur die Spaltenfamilie angeben und der Spaltenqualifizierer muss nicht im Voraus definiert werden.
5)Zeitstempel
Wird zur Identifizierung verschiedener Datenversionen verwendet. Wenn jedes Datenelement geschrieben wird und kein Zeitstempel angegeben ist, fügt das System dieses Feld automatisch hinzu. Sein Wert ist die Zeit, zu der es in HBase geschrieben wurde.
6)Zelle
Eine Einheit, die eindeutig durch {rowkey, ColumnFamily: ColumnQualifier, TimeStamp} bestimmt wird. Die Daten in der Zelle haben keinen Typ und werden alle in Bytecode-Form gespeichert.
1.3HBase-Grundarchitektur
Unvollständige Version
Architekturrolle:
1)RegionServer
RegionServer ist der Manager von Region und seine Implementierungsklasse ist HRegionServer. Seine Hauptfunktionen sind wie folgt: Datenoperationen: Abrufen, Setzen, Löschen; Regionsoperationen: SplitRegion, CompactRegion.
2)Meister
Master ist der Manager aller RegionServer. Seine Implementierungsklasse ist HMaster. Seine Hauptfunktionen sind wie folgt: Für Tabellenoperationen: Erstellen, Löschen, Ändern. Für RegionServer-Operationen: Zuweisen von Regionen zu jedem RegionServer, Überwachen des Status jedes RegionServers, Lastausgleich und Failover.
3) Tierpfleger
HBase verwendet Zookeeper, um Aufgaben wie Master-Hochverfügbarkeit, RegionServer-Überwachung, Metadateneingabe und Wartung der Clusterkonfiguration auszuführen.
4)HDFS
HDFS bietet HBase den ultimativen zugrunde liegenden Datenspeicherdienst und Hochverfügbarkeitsunterstützung für HBase.