Unterschied zwischen HDFS und HBase
HDFS (Hadoop Distributed File System) Mit HDFS können Sie große Datenmengen auf verteilte und redundante Weise speichern, die auf Standardhardware ausgeführt werden. HBase (Hadoop-Datenbank) ist eine NoSQL-Datenbank, die auf Ihrem Hadoop-Cluster ausgeführt wird
Werfen wir einen Blick auf die Komponenten und die Architektur von HDFS bzw. HBase:
Komponenten von HDFS
- NameNode
- DataNode
NameNode: NameNode kann als Master des Systems angesehen werden. Es verwaltet den Dateisystembaum und die Metadaten für alle im System vorhandenen Dateien und Verzeichnisse. Zwei Dateien, 'Namespace Image' und 'Edit Log', werden zum Speichern von Metadateninformationen verwendet. Namenode kennt alle Datenknoten, die Datenblöcke für eine bestimmte Datei enthalten, speichert die Blockpositionen jedoch nicht dauerhaft. Diese Informationen werden bei jedem Systemstart von Datenknoten rekonstruiert.
DataNode: DataNodes sind Slaves, die sich auf jedem Computer in einem Cluster befinden und den eigentlichen Speicher bereitstellen. Es ist für das Bedienen, Lesen und Schreiben von Anforderungen für die Clients verantwortlich.
HDFS-Architektur: -
Komponenten von HBase: -
- Hbase Master
- Regionsserver
- Region
- Tierpfleger
HMaster : Dies ist der Master-Server in der HBase-Architektur. Es ist der Überwachungsagent, der alle Region Server überwacht, und es ist die Verantwortung von HMaster, die Schnittstelle für alle Metadatenänderungen zu sein. Es läuft auf NameNode.
Regionsserver: Wenn der Regionsserver 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 Regionsservern Kontakt aufnehmen. Für die Kommunikation mit Regionsservern ist keine HMaster-Berechtigung erforderlich. Der Client benötigt HMaster-Hilfe, wenn Vorgänge in Bezug auf Metadaten und Schemaänderungen erforderlich sind.
Regionen: Regionen sind die grundlegenden Bestandteile des HBase-Clusters, der aus der Verteilung von Tabellen besteht und aus Spaltenfamilien besteht. Es enthält mehrere Stores, einen für jede Spaltenfamilie. Es besteht hauptsächlich aus zwei Komponenten: Memstore und Hfile.
ZooKeeper: In Hbase ist Zookeeper ein zentraler Überwachungsserver, der Konfigurationsinformationen verwaltet und verteilte Synchronisierung bereitstellt. Bei der verteilten Synchronisierung wird auf die verteilten Anwendungen zugegriffen, die im Cluster ausgeführt werden, und die Verantwortung für die Bereitstellung von Koordinierungsdiensten zwischen Knoten übernommen. Wenn der Client mit Regionen kommunizieren möchte, muss er sich zuerst an ZooKeeper wenden.
HBase-Architektur: - HBase ist ein Teil des Hadoop-Ökosystems.
Tiefenmodell: -
Head to Head Vergleich zwischen HDFS und HBase (Infografik)
Unten ist der Top 14 Vergleich zwischen HDFS und HBase
Hauptunterschiede zwischen HDFS und HBase
Unten ist der Unterschied zwischen HDFS und HBase wie folgt
- HDFS ist ein verteiltes Dateisystem, das sich gut zum Speichern großer Dateien eignet. Andererseits baut HBase auf HDFS auf und bietet schnelle Datensatz-Lookups (und -Updates) für große Tabellen.
- HDFS basiert auf dem GFS-Dateisystem. HBase wird jedoch verteilt - verwendet HDFS für die Speicherung, spaltenorientierte, mehrdimensionale (Versionen) und Speichersysteme
- HDFS verwendet HIVE als eine seiner Komponenten für die Anfragesprache, die HIVE Query Language (HQL) ist, aber Hbase ist KEINE SQL-Datenbank, was bedeutet: - Keine Joins, keine Abfrage-Engine, keine Datentypen, kein (verdammtes) SQL, kein Schema und kein DBA benötigt.
- Da HDFS eine verteilte Speichereinheit ist, gibt es keine andere Sprache als die Befehle, die wie die UNIX-Variante verwendet werden, wie zum Beispiel: - Hadoop dfs -mkdir / foodir
- hadoop dfs -cat /foodir/myfile.txt
- hadoop dfs -rm /foodir/myfile.txt
Andererseits hat Hbase eine eigene Oberfläche in Form von Hbase Shell, wie zum Beispiel:
- hbase (main): 003: 0> erstelle 'test', 'cf'
0 Zeile (n) in 1, 2200 Sekunden
- hbase (main): 004: 0> setze 'test', 'row1', 'cf: a', 'value1'
0 Zeile (n) in 0.0560 Sekunden
- hbase (main): 005: 0> setze 'test', 'row2', 'cf: b', 'value2'
0 Zeile (n) in 0.0370 Sekunden
- hbase (main): 006: 0> setze 'test', 'row3', 'cf: c', 'value3'
0 Zeile (n) in 0.0450 Sekunden
- hbase (main): 007: 0> scan 'test'
REIHENSPALTE + ZELLE
row1 column = cf: a, timestamp = 1288380727188, value = value1
Zeile2 Spalte = cf: b, Zeitstempel = 1288380738440, Wert = Wert2
Zeile3 Spalte = cf: c, Zeitstempel = 1288380747365, Wert = Wert3
3 Zeile (n) in 0, 0590 Sekunden
HDFS vs HBase Vergleichstabelle
Grundlage für den Vergleich | HDFS | HBase |
Warum brauchen wir sie? | Sie müssen große Datenmengen auf großen Computerclustern verarbeiten | HBase ist ein verteilter spaltenorientierter Datenspeicher, der auf HDFS aufbaut |
Knoten fallen jeden Tag aus | a) Ein Ausfall ist eher zu erwarten als außergewöhnlich b) Die Anzahl der Knoten in einem Cluster ist nicht konstant | HBase ist ein Apache-Open-Source-Projekt, dessen Ziel es ist, Speicher für das Hadoop Distributed Computing bereitzustellen |
Muster schreiben | Nur anhängen | Zufälliges Schreiben, Bulk-Inkremental |
Muster lesen | Vollständiger Tabellenscan, Partitionstabellenscan | Random Read, Small Range Scan oder Table Scan |
W / R-Muster | HDFS ist ideal für Anwendungsfälle mit einmaligem und mehrmaligem Schreiben und Lesen geeignet | HBase eignet sich ideal zum zufälligen Schreiben und Lesen von Daten, die in HDFS gespeichert sind. |
Hive (SQL) -Leistung | Relativ sehr gut | 4-5 mal langsamer |
Strukturierter Speicher | Mach es selbst oder TSV oder Sequence File | Datenmodell für spärliche Spaltenfamilien |
Maximale Datengröße | In der Regel können Geschäfte in der Nähe von ca. 30 PB | Ca. 1 PB |
Dynamische Änderungen | HDFS verfügt über eine starre Architektur, die keine Änderungen zulässt. Es erleichtert die dynamische Speicherung nicht. | HBase ermöglicht dynamische Änderungen und kann für eigenständige Anwendungen verwendet werden. |
Datenverteilung | Daten werden auf die Knoten in einem Cluster verteilt gespeichert. Die Daten werden in Blöcke unterteilt und dann über im HDFS-Cluster vorhandene Knoten gespeichert. | Tabellen werden über Regionen auf dem Cluster verteilt, und Regionen werden automatisch aufgeteilt und neu verteilt, wenn Ihre Daten wachsen |
Datenspeicher | Alle Daten werden in Form kleiner Dateien gespeichert, und alle Dateien haben eine typische Größe von 64 MB (in der neueren Version 128 MB). | Alle Daten werden in Form von Tabellen, Zeilen und Spalten gespeichert |
Datenmodellierung | In HDFS verwenden wir die Map Reduce-Technik, die die Dateien in die Schlüssel-Wert-Paare unterteilt | HBase basiert auf Googles Bigtable-Modell, das auch Schlüssel-Wert-Paare verwendet |
Operationen | Es hat Operationen mit hoher Latenz | Es hat niedrige Latenzzeiten |
Barrierefreiheit | Der Zugriff erfolgt hauptsächlich über MR-Aufträge (Map Reduce) | Der Zugriff erfolgt über Shell-Befehle, Client-API in Java, REST, Avro oder Thrift |
Schlussfolgerung - HDFS vs HBase
Insgesamt haben sowohl HDFS als auch HBase wunderbare Technologien für sich. Sie wurden sowohl für HDFS als auch für HBase entwickelt, um die Big Data zu speichern und den Zugriff und die Berechnung zu vereinfachen. Beide, HDFS und HBase, gehen Seite an Seite, während ein HDFS die Daten speichert, während das andere HBase ein Schema für die Daten erstellt, wie sie gespeichert und später für die Verwendung durch den Client abgerufen werden sollen.
Hbase ist eine spaltenorientierte verteilte NoSql-Datenbank, die in Apache Foundation verfügbar ist. HBase bietet mehr Leistung beim Abrufen weniger Datensätze als Hadoop oder Hive. Es ist sehr einfach, nach einem bestimmten Eingabewert zu suchen, da er die Indizierung, Transaktionen und Aktualisierung unterstützt.
Mithilfe von 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 Ruhe-APIs zum Ausführen der MapReduce-Jobs.
Empfohlener Artikel
Dies war ein Leitfaden für HDFS vs HBase, deren Bedeutung, Kopf-an-Kopf-Vergleich, Hauptunterschiede, Vergleichstabelle und Schlussfolgerung. In diesem Artikel werden alle nützlichen Unterschiede zwischen HDFS und HBase beschrieben. Weitere Informationen finden Sie auch in den folgenden Artikeln:
- HBase vs Cassandra - Welches ist besser (Infografik)
- Finden Sie die 7 besten Unterschiede zwischen Hadoop und HBase heraus
- Top 12 Vergleich von Apache HBase vs Apache Hive (Infographics)