HBase: Eine Zusammenfassung (PDF)
Document Details
![FlatterForgetMeNot](https://quizgecko.com/images/avatars/avatar-14.webp)
Uploaded by FlatterForgetMeNot
FH Aachen University of Applied Sciences
2023
FH AACHEN
Tags
Summary
Diese Datei ist eine Zusammenfassung von HBase-Präsentationen, die die Schlüsselkomponenten und -Konzepte des verteilten und hochskalierten Speichersystems HBase erläutert. Die Präsentationen beschreiben die Architektur, das Datenmodell, die Compaction-Strategien, und die Unterschiede zu herkömmlichen relationalen Datenbanken. Sie betonen die besonderen Eigenschaften von HBase im Zusammenhang mit großen Datensätzen und die verschiedenen Operationen, die vom System unterstützt werden. Die Präsentationen sind Teil eines Studienfachs, wahrscheinlich Datenbanken II.
Full Transcript
HBase © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 334 HBase: Teil des Hadoop-Ecosystems HBase wurde unter...
HBase © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 334 HBase: Teil des Hadoop-Ecosystems HBase wurde unter Verwendung von HDFS entworfen HBase speichert die Dateien in HDFS © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 335 HBase Reversed-Engineered-Implementierung von Google’s BigTable HDFS wurde für die Batch-Verarbeitung konzipiert (scans über große Dateien) – Nicht geeignet für „Record Lookups“ – Nicht geeignet für inkrementelles hinzufügen kleiner Änderungen – Nicht geeignet für Updates HBase basiert auf HDFS, liefert aber andere Eigenschaften © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 336 HBase (Cont’d) HBase adressiert die genannten Nachteile – Schneller Record Lookup – Unterstützung von Einfügeoperationen in existierenden Datensätzen – Kann Updates (aber nicht „in place“) HBase Updates werden durch das Anlegen einer neuen Version realisiert © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 337 HBase vs. HDFS Wenn die Anwendung weder random reads noch writes hat è Verwende HDFS Hinweis: Es gibt noch Alternativen zu HBASE! © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 338 Exkurs Apache Parquet https://towardsdatascience.com/demystifying-the-parquet-file-format-13adb0206705 © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 339 Exkurs Apache Parquet https://stackoverflow.com/questions/45668578/why-1-hdfs-block-per-hdfs-file-is-better-in-parquet-official-document © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 340 Exkurs Apache Parquet https://towardsdatascience.com/demystifying-the-parquet-file-format-13adb0206705 Tricks wie Lauflängenkodierung möglich, aber nicht schemafrei © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 341 Das Datenmodell von HBase © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 342 … es entspricht dem BigTable-Modell Column Family Row key TimeStamp value Aus: HBase The Definitive Guide Tombstone-Markierung © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 343 © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 344 © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 345 Anmerkungen zum Datenmodell Die Versionsnummer kann auch vom Nutzer angegeben werden – Sie muss auch nicht in aufsteigender Reihenfolge angegeben werden – Versionsnummern sind aber eindeutig für jede Zelle Tabellen sind dünn besetzt – Viele Zellen sind leer Besitzt zwei Spalten [cnnsi.com & my.look.ca] © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 346 HBase: Das physikalische Datenmodell © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 347 HBase: Das physikalische Datenmodell Jede Column Family wird in einer oder mehreren separaten Dateien gespeichert (hier mit HFiles bezeichnet, was den sstables von Bigtable entspricht) Leere Zellen werden nicht gespeichert HBase verwaltet einen multi-level index auf den Werten: © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 348 HStore Die physikalische Sicht Tabellen werden quasi pro Column Row key TS “contents:” Column Family gespeichert t12 “…” Jede Column Family bildet “com.apache.w ww” einen HStore (logische t11 “…” Gruppierung von HFiles) t6 “…” HStore Anschaulich ist dies eine “com.cn.www” t5 “…” Abstraktion zur Abbildung t3 “…” der Verzeichnisse im HDFS in dem die HFiles stehen, Row key TS Column “anchor:” die dieser Knoten “com.apache “anchor: verantwortet t10 “APACH.www” apache.com” E” /table/region-id/column- t9 “anchor: “CNN” family1/[list of HFiles] cnnsi.com” com.cn.www” /table/region-id/column- t8 “anchor: “CNN.c family2/[list of HFiles] my.look.ca” om” © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 349 HBase-Regions Was bei BigTable die Tablets sind, sind hier die Regions Jede Column Family wird horizontal in Regions partitioniert Jeweils in einer eigenen Region, die von einem eigenen Server bedient wird (HDFS-Client) © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 350 HBase Regions © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 351 HBase: Die Architektur des verteilten Systems © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 352 HBase-Komponenten Region – Bezeichnet eine Menge an Zeilen der Tabelle, also eine horizontale Partition – Wird automatisch erstellt RegionServer (viele) – Stellt die Datenregionen bereit – Nutzt seinen Hauptspeicher als Cache für die Änderungsoperation der unveränderlichen HFiles – Daten werden über ein Log abgesichert – Bedient letztlich reads und writes HBase-Master – Verantwortlich für die Koordinierung der RegionServer – Weist Regionen auf die Server zu und entdeckt Fehlersituationen – Administratorfunktionen © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 353 HBase-Master Weist Regionen den HRegionServer zu 1. ROOT-Region liefert auch hier die META-Regionen Mast er 2. META.-Region verweisen dann 2 META Regi on 2 META Regi on 2 META Regi on auf die tatsächlichen 2 META Regi on Nutzerregionen 1 ROOT Regi on 3. Diese werden dann auf die HRegionServer-abgebildet Ser ver Ser ver Ser ver Ser ver Ser ver Überwacht die Systeme, die noch funktional sind 354 © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 354 HBASE-Abbildung mit mehreren Tabellen 355 © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 355 ROOT/META Tabelle Jeder Eintrag in der ROOT und META- Tabelle ist etwa 1KB groß. Gehen wir von der Default-Größe von 256MB pro Bereich aus, dann erhalten wir: 1ROOTtable = 2 METAregions 18 = 2 ´ 2 USERregions 18 18 = 2 KB = 2 bytes 54 64 224TB © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 356 Der ZooKeeper (das Chubby-Analogon) © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 357 Der ZooKeeper (das Chubby-Analogon) Der Zookeeper ermöglicht einen Filesystem-ähnlichen Zugriff auf Directories und Files (znodes genannt). Die Dateien haben quasi keinen Inhalt, nur einen Namen und ggf. eine Lebensdauer Es handelt sich auch hier um ein verteiltes System (zookeeper- Cluster) Mit diesen Werkzeugen können Eigentumsrechte ermittelt, Dienste registriert und gefunden werden, oder nach Neuigkeiten gesucht werden Jeder HRegionServer erzeugt einen Eintrag beim Zookeeper, mit dessen Hilfe der HMaster die operativen HRegionServer findet. Diese Einträge werden über einen Heartbeat gepflegt und bei Ausbleiben gelöscht Mittels des Zookeeper wird auch sichergestellt, dass es nur einen Master gibt Ebenso hilft der Zookeeper dabei, den ROOT-Server zu finden, der dort einen Eintrag hat © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 358 Ablauf des Auffinden mit Zookeeper (Hbase: The definitive Guide) HBASE-Root-Table © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 359 HBase-Client Zookeeper Where is my Root? © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 360 HBase Client ROOT Region © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 361 HBase Client META Region © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 362 HBase Client User Region Information cached © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 363 Memtable und die Absicherung von Schreiboperationen: HLog Die Struktur der HFiles entspricht den SSTables: Sie sind im Dateisystem unveränderlich Die zugleich sortierten Inhalte eines HFiles werden zusätzlich als Index gepflegt. Damit sind variable Längen der einzelnen Einträge bei quasi direktem Zugriff möglich. Alle Indexe der verwendeten HFiles werden in den Speicher geladen und dort beibehalten. Dies ermöglicht ein schnelles Auffinden Änderungen eines HFiles geschehen immer im Speicher. Dort werden also veränderte HFiles gehalten (memtable). Diese werden regelmäßig auf Platte gesichert (neuer HFile) Log-File macht Änderungen in memtable persistent HFiles werden immer wieder zusammen gemischt © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 364 Die Absicherung von Schreiboperationen: HLog http://www.larsgeorge.com/2010/01/hbase-architecture-101-write-ahead-log.html © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 365 HBase: Write Ahead Log Alle Änderungen werden im Speicher durchgeführt, dem sogenannten memstore. Der wahlfreie Zugriff im Hauptsspeicher liefert die Basis für schnelle Random Writes. Allerdings bedeutet dies, dass der memstore auch ein Risiko ist. Stürzt das System ab, so könnten Daten verloren gehen. Um dies zu adressieren gibt es bei HBase ein Write-Ahead-Log (WAL). Bevor also die Informationen im memstore verändert werden werden Information in das Log-File geschrieben. Hierdurch kann auch bei Systemabsturz der memstore aus dem WAL rekonstruiert werden. © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 366 HBASE uses a Write Ahead Log https://blog.cloudera.com/apache-hbase-write-path/ © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 367 Das Big Picture http://www.larsgeorge.com/2009/10/hbase-architecture-101-storage.html © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 368 HBASE Read Path https://nag-9-s.gitbook.io/hbase/hbase-read © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 369 HBASE Write Path https://nag-9-s.gitbook.io/hbase/hbase-write © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 370 Ändern der Daten Da HFiles nicht veränderbar sind können wir Daten zunächst nur im Speicher verändern Wir halten somit alle aktuell relevanten HFiles im Speicher und modifizieren diese (zunächst) nur dort Die Indexe der relevanten HFiles können so auch zusammen im Speicher gehalten werden © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 371 https://www.igvita.com/2012/02/06/sstable-and-log-structured-storage-leveldb/ © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 372 Speichern der Regions Tablets werden dauerhaft im HDFS abgelegt Veränderungen in der Memtable werden über ein log-File gesichert, welches Redo-Informationen beinhaltet Im Log werden auch Löschoperationen kenntlich gemacht – Memtable: Aktuelle Maßnahmen auf den Regions im Speicher Zweifelsfrei muss man ab und an neue HFiles abspeichern und nicht über das Log gehen © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 373 Was aber, wenn die Memtable zu groß wird? Minor compaction: – Erzeuge neue memtable – Konvertiere die alte in ein HFile und speichere diesen im HDFS – Hinweis: Jede minor compaction erzeugt einen neuen HFile © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 374 Compactions Merge Compaction – Limitiere die Anzahl der HFiles durch Zusammenfügen mehrerer – Lese daher den Inhalt einiger HFiles und memtables und speichere diesen in neue HFiles (kleinere Anzahl) Major compaction: – Verdichtet alle HFiles in einen HFile – Erzeugt HFile ohne Löschinformation © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 375 Minor compaction https://nag-9-s.gitbook.io/hbase/hbase-architecture/hbase-minor-compaction Wurde durchgeführt wenn ein Schwellenwert an kleinen Hfiles existiert, die in weniger große zusammengefasst werden können Read/write Operationen werden hiervon nicht gestört © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 376 Major compaction https://nag-9-s.gitbook.io/hbase/hbase-architecture/hbase-major-compaction Verdichtet die aktuelle memtable und alle HFiles in einen neuen HFile Damit sind alle gelöschten Daten auch weg © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 377 Joins HBase unterstützt keine joins Geht aber auf Anwendungsebene – Basis sind scan() und get() Operationen © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 378 HBase vs. RDBMS © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 379 Wann sollte ggf. HBase verwendet werden? Nur dann eine Option, wenn man Random Writes, Random Reads oder eben beides gleichzeitig benötigt Interessant, wenn man extrem große Datenmengen unterstützen möchte und tausende Operationen pro Sekunde Eher einfache, bekannte Zugriffsmuster © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 380 HBase-Shell l HBase shell bietet eine interaktive Umgebung zum manipulieren der Tabellen und Daten l Create/delete Tabelle l Insert/update/read von Tabellen l Verwalten der Regions 38 © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 381 1 HBase-Shell-Übung l hbase shell l hbase(main):001:0> list 38 © FH AACHEN UNIVERSITY OF APPLIED SCIENCES Vorlesung Datenbanken II / Datenanalyse November 23| 382 2