Strukturierte Datenspeicherung und -verarbeitung in Hadoop
Wenn Hadoop Fähigkeiten für die Arbeit mit strukturierten Daten (oder die Arbeit mit Daten jeglicher Art, für diese Angelegenheit) unter Berücksichtigung erinnern Kerneigenschaften des Hadoop: Hadoop ist, in erster Linie, eine universelle Datenspeicherung und -verarbeitung Plattform, um Tausende zu skalieren entworfen von Rechenknoten und Petabytes von Daten.
Es gibt keine Datenmodell itself- Daten in Hadoop wird einfach auf die Hadoop-Cluster als Raw-Dateien gespeichert. Als solche haben die Kernkomponenten von Hadoop selbst keine speziellen Fähigkeiten für die Katalogisierung, Indexierung, oder strukturierte Daten abfragen.
Die Schönheit eines Allzweckdatenspeichersystems ist, dass es für hochspezifische Zwecke erweitert werden kann. Die Hadoop-Community hat genau das getan mit einer Reihe von Apache-Projekte - Projekte, die in der Summe, die Hadoop bilden Ökosystem. Wenn es um strukturierte Datenspeicherung und -verarbeitung kommt, die in dieser Liste beschriebenen Projekte sind die am häufigsten verwendeten:
Bienenstock: Ein Data-Warehousing-Rahmen für Hadoop. Hive Kataloge Daten in strukturierten Dateien und stellt eine Abfrage-Schnittstelle mit dem SQL-ähnliche Sprache namens HiveQL.
HBase: EIN verteilt Datenbank - eine NoSQL-Datenbank, die eher auf mehreren Computern beruht als auf einer einzigen CPU, mit anderen Worten - die auf der Oberseite von Hadoop integriert ist.
Giraph: Ein Graph Processing Engine für in Hadoop gespeicherten Daten.
Viele andere Apache-Projekte unterstützen verschiedene Aspekte der strukturierten Datenanalyse, und einige Projekte konzentrieren sich auf eine Reihe von Frameworks und Schnittstellen.
Wenn die optimale Architektur für Ihre Analytik Bedürfnisse zu bestimmen, müssen Sie die Attribute und Fähigkeiten der Systeme zu bewerten Sie in Betracht ziehen. Die Tabelle vergleicht Hadoop-basierten Datenspeicher (Hive, Giraph und HBase) mit traditionellen RDBMS.
Kriterien | Bienenstock | Giraph | HBase | RDBMS |
---|---|---|---|---|
Veränderbare Daten | Nein | ja | ja | |
Daten-Layout | Raw-Dateien gespeichert in HDFS- Hive unterstützt proprietaryrow orientierte oder spaltenorientierte Formate. | Ein spärlich verteilt, persistent mehrdimensionale SortedMap | Row-orientierte oder spaltenorientierte | |
Datentypen | Bytes- Datentypen werden auf Abfrage interpretiert. | Rich-Datentyp-Unterstützung | ||
Hardware | Hadoop-Cluster-Ware x86 Server- fünf oder mehr ist typicalbecause der zugrunde liegenden Speichertechnologie ist HDFS, die von defaultrequires drei Repliken. | Typischerweise große, skalierbare Multi-Prozessor-Systeme | ||
Hohe Verfügbarkeit | Ja- in die Hadoop-Architektur | Ja, wenn die Hardware und RDBMS korrekt konfiguriert sind | ||
Indizes | ja | Nein | Row-Schlüssel nur oder spezielle Tabelle erforderlich | ja |
Abfragesprache | HiveQL | Giraph API | HBase API-Befehle (,,,,,, HiveQL | SQL |
Schema | Schema als Dateien definiert werden mit dem Hive Data Language (DDL) katalogisiert | Schema auf Lese | Variability in Schema zwischen den Reihen | Schema auf Last |
Durchsatz | Millionen von Lese- und Schreibvorgänge pro Sekunde | Tausende liest und schreibt pro Sekunde | ||
Transaktionen | Keiner | Bietet ACID-Unterstützung auf nur einer einzigen Reihe | Bietet mehrreihigen und Kreuztabelle Transaktionsunterstützung withfull ACID-Eigenschaft Compliance | |
Transaktionsgeschwindigkeit | Modest Geschwindigkeit für interaktive queries- schnell für volle tablescans | Schnell für interaktive queries- schnell für vollständige Tabellenscans | Schnell für interaktive queries- langsamer für vollständige Tabellenscans | |
Typische Größe | Bereiche von Terabyte zu Petabyte (von Hunderten von millionsto Milliarden von Zeilen) | Von Gigabyte Terabyte (von Hunderttausenden tomillions von Zeilen) |