Dies ist eine naive Frage, aber ich bin neu im NoSQL-Paradigma und weiß nicht viel darüber. Wenn mir jemand helfen kann, den Unterschied zwischen HBase und Hadoop klar zu verstehen, oder wenn ich einige Hinweise gebe, die mir helfen könnten, den Unterschied zu verstehen.
Bis jetzt habe ich einige Nachforschungen angestellt und gem. Nach meinem Verständnis bietet Hadoop ein Framework für die Arbeit mit Rohdatenblöcken (Dateien) in HDFS, und HBase ist eine Datenbank-Engine über Hadoop, die grundsätzlich mit strukturierten Daten anstelle von Rohdatenblöcken arbeitet. Hbase bietet genau wie SQL eine logische Schicht über HDFS. Ist es richtig?
Bitte zögern Sie nicht, mich zu korrigieren.
Vielen Dank.
Antworten:
Hadoop besteht im Wesentlichen aus drei Dingen: einem FS (Hadoop Distributed File System), einem Berechnungsframework (MapReduce) und einer Verwaltungsbrücke (Yet Another Resource Negotiator). Mit HDFS können Sie große Datenmengen verteilt (schnellerer Lese- / Schreibzugriff) und redundant (bessere Verfügbarkeit) speichern. Mit MapReduce können Sie diese riesigen Daten verteilt und parallel verarbeiten. MapReduce ist jedoch nicht nur auf HDFS beschränkt. Als FS fehlt HDFS die Fähigkeit zum zufälligen Lesen / Schreiben. Es ist gut für den sequentiellen Datenzugriff. Und hier kommt HBase ins Spiel. Es handelt sich um eine NoSQL-Datenbank, die auf Ihrem Hadoop-Cluster ausgeführt wird und Ihnen zufälligen Lese- / Schreibzugriff in Echtzeit auf Ihre Daten bietet.
Sie können sowohl strukturierte als auch unstrukturierte Daten in Hadoop und HBase speichern. Beide bieten Ihnen mehrere Mechanismen für den Zugriff auf die Daten, z. B. die Shell und andere APIs. Und HBase speichert Daten als Schlüssel / Wert-Paare in einer Spaltenform, während HDFS Daten als flache Dateien speichert. Einige der herausragenden Merkmale beider Systeme sind:
Hadoop
HBase
Hadoop eignet sich am besten für die Offline-Stapelverarbeitung, während HBase verwendet wird, wenn Sie Echtzeitanforderungen haben.
Ein analoger Vergleich wäre zwischen MySQL und Ext4.
quelle
Das Apache Hadoop- Projekt umfasst vier Schlüsselmodule
HBase ist eine skalierbare, verteilte Datenbank, die die strukturierte Datenspeicherung für große Tabellen unterstützt. Ebenso wie
Bigtable
Apache HBase den verteilten Datenspeicher des Google-Dateisystems nutzt, bietet es Bigtable-ähnliche Funktionen zusätzlich zu Hadoop und HDFS.Wann HBase zu verwenden ist:
HBase weist jedoch einige Einschränkungen auf
Zusammenfassung:
Werfen Sie einen Blick auf Do's and Don't of HBase aus dem Cloudera- Blog.
quelle
Hadoop verwendet ein verteiltes Dateisystem, dh HDFS zum Speichern von BigData. Es gibt jedoch bestimmte Einschränkungen von HDFS und Inorder, um diese Einschränkungen zu überwinden. Es wurden NoSQL-Datenbanken wie HBase, Cassandra und Mongodb eingerichtet.
Hadoop kann nur Stapelverarbeitung durchführen, und auf Daten wird nur nacheinander zugegriffen. Das bedeutet, dass man den gesamten Datensatz selbst nach den einfachsten Jobs durchsuchen muss. Ein großer Datensatz führt bei der Verarbeitung zu einem weiteren großen Datensatz, der ebenfalls nacheinander verarbeitet werden sollte. Zu diesem Zeitpunkt ist eine neue Lösung erforderlich, um auf jeden Datenpunkt in einer einzigen Zeiteinheit zuzugreifen (Direktzugriff).
Wie alle anderen Dateisysteme bietet HDFS Speicherplatz, jedoch fehlertolerant mit hohem Durchsatz und geringerem Risiko für Datenverlust (aufgrund der Replikation). Da HDFS jedoch ein Dateisystem ist, fehlt HDFS der zufällige Lese- und Schreibzugriff. Hier kommt HBase ins Spiel. Es handelt sich um einen verteilten, skalierbaren Big Data-Speicher, der dem BigTable von Google nachempfunden ist. Cassandra ist hbase etwas ähnlich.
quelle
Sowohl HBase als auch HDFS in einem Bild
HDFS ist ein verteiltes Dateisystem, das sich gut zum Speichern großer Dateien eignet. Dies bietet keine schnelle Suche nach einzelnen Datensätzen in Dateien.
HBase hingegen basiert auf HDFS und bietet schnelle Datensatzsuche (und -aktualisierungen) für große Tabellen. Dies kann manchmal zu konzeptioneller Verwirrung führen. HBase speichert Ihre Daten intern in indizierten "StoreFiles", die in HDFS für Hochgeschwindigkeitssuchen vorhanden sind.
Nun, auf Infrastrukturebene hat jede Salbenmaschine im Cluster folgende Dämonen
HBase erzielt mithilfe des folgenden Datenmodells eine schnelle Suche in HDFS (manchmal auch in anderen verteilten Dateisystemen) als zugrunde liegenden Speicher
Tabelle
Reihe
Säule
Spaltenfamilie
Spaltenqualifizierer
Zelle
Zeitstempel
Client-Leseanforderungsfluss:
Was ist die Metatabelle im obigen Bild?
Quellen und weitere Informationen:
quelle
Referenz: http://www.quora.com/Was-ist-der- Unterschied zwischen- HBASE-und- HDFS-in- Hadoop
Hadoop ist ein allgemeiner Name für mehrere Subsysteme: 1) HDFS. Ein verteiltes Dateisystem, das Daten auf einen Cluster von Computern verteilt, die sich um Redundanz usw. kümmern. 2) Map Reduce. Ein Jobverwaltungssystem über HDFS - zum Verwalten von Jobs mit Kartenreduzierung (und anderen Typen), die die in HDFS gespeicherten Daten verarbeiten.
Grundsätzlich bedeutet dies, dass es sich um ein Offline-System handelt. Sie speichern Daten in HDFS und können sie durch Ausführen von Jobs verarbeiten.
HBase hingegen in einer spaltenbasierten Datenbank. Es verwendet HDFS als Speicher - der sich um Backup \ Redundency \ etc kümmert, aber es ist ein "Online-Shop" - was bedeutet, dass Sie es nach bestimmten Zeilen \ Zeilen usw. abfragen und einen sofortigen Wert erhalten können.
quelle
HDFS ist ein Java-basiertes verteiltes Dateisystem, mit dem Sie große Datenmengen auf mehreren Knoten in einem Hadoop-Cluster speichern können. Während HBase eine NoSQL-Datenbank ist (ähnlich wie NTFS und MySQL).
Da sowohl HDFS als auch HBase alle Arten von Daten wie strukturiert, halbstrukturiert und unstrukturiert in einer verteilten Umgebung speichern.
Unterschiede zwischen HDFS & HBase
HDFS speichert große Datenmengen in einer verteilten Umgebung und nutzt die Stapelverarbeitung für diese Daten.
Während HBase Daten spaltenorientiert speichert, wobei jede Spalte zusammen gespeichert wird, wird das Lesen mithilfe der Echtzeitverarbeitung schneller.
quelle