Frage

Ich bin daran interessiert herauszufinden, wie die kürzlich veröffentlichte (http://mirror.facebook.com/facebook/hive/hadoop-0.17/) Hive ist hinsichtlich der Leistung mit HBase vergleichbar.Die von Hive verwendete SQL-ähnliche Schnittstelle ist der von uns implementierten HBase-API deutlich vorzuziehen.

War es hilfreich?

Lösung

Es ist schwer, viel über Hive herauszufinden, aber ich habe das hier gefunden Ausschnitt auf der Hive-Site, die stark zu HBase tendiert (fett hinzugefügt):

Hive basiert auf Hadoop, einem Stapelverarbeitungssystem.Dementsprechend ist dieses System nicht und kann keine niedrigen Latenzen bei Abfragen versprechen.Das Paradigma hier besteht ausschließlich darin, Aufträge zu übermitteln und benachrichtigt zu werden, wenn die Aufträge abgeschlossen sind, und nicht in Echtzeitabfragen.Daher sollte es nicht mit Systemen wie Oracle verglichen werden, bei denen die Analyse auf einer deutlich kleineren Datenmenge erfolgt, sondern die Analyse viel iterativer abläuft, wobei die Antwortzeiten zwischen den Iterationen weniger als ein paar Minuten betragen. Bei Hive-Abfragen können die Antwortzeiten selbst für die kleinsten Jobs in der Größenordnung von 5 bis 10 Minuten liegen, bei größeren Jobs können sie sogar mehrere Stunden betragen.

Da es bei HBase und HyperTable vor allem um Leistung geht (nach dem Vorbild von Googles BigTable), scheinen sie auf jeden Fall viel schneller als Hive zu sein, allerdings auf Kosten der Funktionalität und einer höheren Lernkurve (z. B. verfügen sie nicht über Verknüpfungen oder SQL). -ähnliche Syntax).

Andere Tipps

Aus einer Perspektive besteht Hive aus fünf Hauptkomponenten:eine SQL-ähnliche Grammatik und einen SQL-Parser, einen Abfrageplaner, eine Abfrageausführungs-Engine, ein Metadaten-Repository und ein spaltenorientiertes Speicherlayout.Sein Hauptaugenmerk liegt auf analytischen Workloads im Data-Warehouse-Stil, sodass ein Abruf von Werten mit geringer Latenz nach Schlüssel nicht erforderlich ist.

HBase verfügt über ein eigenes Metadaten-Repository und ein eigenes spaltenbasiertes Speicherlayout.Es ist möglich, HiveQL-Abfragen über HBase-Tabellen zu erstellen, sodass HBase die Grammatik und den Parser, den Abfrageplaner und die Abfrageausführungs-Engine von Hive nutzen kann.Sehen http://wiki.apache.org/hadoop/Hive/HBaseIntegration für mehr Details.

Hive ist ein Analysetool.Genau wie Pig wurde es für die Ad-hoc-Stapelverarbeitung potenziell enormer Datenmengen durch Nutzung von Map Reduce entwickelt.Denken Sie an Terrabyte.Stellen Sie sich vor, Sie versuchen, das in einer relationalen Datenbank zu tun ...

HBase ist ein spaltenbasierter Schlüsselwertspeicher, der auf BigTable basiert.Sie können keine Abfragen per se durchführen, Sie können jedoch Kartenreduzierungsjobs über HBase ausführen.Sein Hauptanwendungsfall ist das Abrufen von Zeilen nach Schlüssel oder das Scannen von Zeilenbereichen.Eine wichtige Funktion ist die Möglichkeit der Datenlokalität beim Scannen über Bereiche von Zeilenschlüsseln nach einer „Familie“ von Spalten.

Meines bescheidenen Wissens nach ist Hive eher mit Pig vergleichbar.Hive ist SQL-ähnlich und Pig ist skriptbasiert.Hive scheint mit Abfrageoptimierungs- und Ausführungs-Engines komplizierter zu sein und erfordert die Angabe von Schemaparametern durch den Endbenutzer (Partition usw.).Beide sollen Textdateien oder Sequenzdateien verarbeiten.

HBase dient zum Speichern und Abrufen von Schlüsselwertdaten. Sie können diese Schlüsselwertpaare (Zeilen) scannen oder filtern.Sie können keine Abfragen für (Schlüssel-, Wert-)Zeilen durchführen.

Seit den letzten Hive-Versionen hat sich viel geändert, was ein kleines Update erfordert Hive und HBase sind jetzt integriert.Das bedeutet, dass Hive als Abfrageschicht für einen HBase-Datenspeicher verwendet werden kann.Wenn Leute nun nach alternativen HBase-Schnittstellen suchen, bietet Pig auch eine wirklich gute Möglichkeit dazu Laden und Speichern von HBase-Daten.Außerdem sieht es so aus Cloudera Impala bietet möglicherweise erhebliche Leistung bei Hive-basierten Abfragen zusätzlich zu HBase.Sie versprechen bis zu 45-mal schnellere Abfragen im Vergleich zu herkömmlichen Hive-Setups.

Hive und HBase werden für unterschiedliche Zwecke verwendet Zweck.

Bienenstock:

Vorteile:

  1. Apache Hive ist ein Data-Warehouse-Infrastruktur darauf gebaut Hadoop.
  2. Es ermöglicht die Abfrage der darauf gespeicherten Daten HDFS zur Analyse über HQL, ein SQL-ähnliche Sprache, die in eine Reihe von umgewandelt wird Karte Jobs reduzieren
  3. Es läuft nur Batch-Prozesse auf Hadoop.
  4. es ist JDBC-kompatibel, Es lässt sich auch in vorhandene SQL-basierte Tools integrieren
  5. Hive unterstützt Partitionen
  6. Es unterstützt analytische Abfrage von Daten über einen bestimmten Zeitraum gesammelt

Nachteile:

  1. Es unterstützt derzeit keine Update-Anweisungen
  2. Es sollte mit einem vordefinierten Schema ausgestattet sein, um Dateien und Verzeichnisse in Spalten abzubilden

HBase:

Vorteile:

  1. Eine skalierbare, verteilte Datenbank das die strukturierte Datenspeicherung für große Tabellen unterstützt
  2. Es bietet Zufälliger Lese-/Schreibzugriff in Echtzeit zu Ihren Big Data.HBase-Vorgänge werden in Echtzeit in der Datenbank ausgeführt und nicht in MapReduce-Jobs
  3. es unterstützt Partitionen zu Tabellen, und Tabellen werden weiter in Spaltenfamilien aufgeteilt
  4. Skaliert horizontal mit großen Datenmengen mithilfe von Hadoop
  5. Bietet schlüsselbasierten Zugriff auf Daten beim Speichern oder Abrufen.Es unterstützt das Hinzufügen oder Aktualisieren Reihen.
  6. Unterstützt Versionierung von Dateien.

Nachteile:

  1. HBase-Abfragen werden in einer benutzerdefinierten Sprache geschrieben, die erlernt werden muss
  2. HBase ist nicht vollständig ACID-kompatibel
  3. Es kann nicht mit komplizierten Zugriffsmustern (z. B. Joins) verwendet werden.
  4. Es ist auch kein vollständiger Ersatz für HDFS, wenn MapReduce in großen Mengen ausgeführt wird

Zusammenfassung:

Hive kann für analytische Abfragen verwendet werden, während HBase für Echtzeitabfragen verwendet werden kann.Daten können sogar von Hive zu HBase und wieder zurück gelesen und geschrieben werden.

Um Hive mit Hbase zu vergleichen, möchte ich mich an die folgende Definition erinnern:

Eine Datenbank, die für die Behandlung von Transaktionen ausgelegt ist, ist nicht so ausgelegt, dass die Analysen verarbeitet werden.Es ist nicht darauf ausgelegt, Analysen gut durchzuführen.Ein Data Warehouse hingegen ist strukturiert, um die Analyse schnell und einfach zu machen.

Hive ist eine auf Hadoop basierende Data-Warehouse-Infrastruktur, die für lang laufende ETL-Jobs geeignet ist.Hbase ist eine Datenbank zur Abwicklung von Echtzeittransaktionen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top