Die Hive-Komponente kann folgende Dienste bereitstellen: 1. SQL-Anweisungen in Mapreduce-Code konvertieren; 2. Daten können mit HDFS zur Speicherung gespeichert werden; 3. Daten können mit MapReduce berechnet werden. Hive ist ein auf Hadoop basierendes Data Warehouse-Tool, das zum Extrahieren, Transformieren und Laden von Daten verwendet wird. Das Hive Data Warehouse-Tool kann strukturierte Datendateien einer Datenbanktabelle zuordnen und SQL-Abfragefunktionen bereitstellen, mit denen SQL-Anweisungen zur Ausführung in MapReduce-Aufgaben umgewandelt werden können .
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Dell G3-Computer.
Beim Aufbau eines Data Warehouse spielt die Hive-Komponente eine sehr wichtige Rolle. Wir wissen, dass Hive ein wichtiges Data Warehouse-Tool auf Basis von Hadoop ist, aber wie man es anwendet, bedarf weiterer Untersuchungen.
(3) Bereitstellung einer einheitlichen Metadatenverwaltung
(4) Skalierbarkeit: Hive unterstützt benutzerdefinierte Funktionen, Benutzer können ihre eigenen Funktionen entsprechend ihren eigenen Anforderungen implementieren
(1) Die HQL-Ausdrucksfähigkeit von Hive ist begrenzt
1) Iterative Algorithmen können nicht ausgedrückt werden, z Mining wie kmeans
(2) Die Effizienz von Hive ist relativ gering
1) Der von Hive automatisch generierte Mapreduce-Job ist normalerweise nicht intelligent genug
2) Hive-Tuning ist schwierig und die Granularität ist grob
3)Hive ist schlecht kontrollierbar
(3)Hive unterstützt keine Dinge. Wird hauptsächlich für OLAP (Online Analytical Processing) verwendet.
Warum Hive verwenden? Hive hat das Aussehen einer SQL-Datenbank, die Anwendungsszenarien sind jedoch völlig unterschiedlich. Hive eignet sich nur für die statistische Analyse von Batch-Daten.
Hive verwendet HDFS zum Speichern von Daten und MapReduce zum Abfragen und Analysieren von Daten. Da die direkte Verwendung von Hadoop MapReduce zur Datenverarbeitung mit dem Problem hoher Personallernkosten konfrontiert ist und die Entwicklung komplexer Abfragelogik mit MapReduce zu schwierig ist. Bei Hive verwendet die Betriebsschnittstelle eine SQL-ähnliche Syntax, die nicht nur schnelle Entwicklungsfunktionen bietet, sondern auch das Schreiben von MapReduce vermeidet, wodurch die Lernkosten für Entwickler gesenkt und die Funktionserweiterung bequemer gestaltet werden.
CLI (Hive-Shell), JDBC/ODBC (Java-Zugriffs-Hive), WEBUI (Browser-Zugriffs-Hive)
2. Metadaten: MetastoreMetadaten umfassen: Tabellenname, Datenbank, zu der die Tabelle gehört (Standard ist Standard), Tabelleneigentümer, Spalten-/Partitionsfeld, Tabellentyp
(ob es sich um eine externe Tabelle handelt), Verzeichnis, in dem sich die Daten der Tabelle befinden usw .;
Metadatendaten: Metastore
Metadaten umfassen: Tabellenname, Datenbank, zu der die Tabelle gehört (Standard ist Standard), Tabelleneigentümer, Spalten-/Partitionsfeld, Typ der Tabelle
(ob es sich um eine externe Tabelle handelt), Verzeichnis, in dem sich die Daten der Tabelle befinden usw. ;
Standardmäßig werden sie in der integrierten Derby-Datenbank gespeichert. Es wird empfohlen, MySQL zum Speichern von Metastore zu verwenden.
3. Hadoop
verwendet HDFS zur Speicherung und MapReduce zur Berechnung.
4. Treiber: Treiber
(1) Parser (SQL-Parser): Konvertieren Sie die SQL-Zeichenfolge in einen abstrakten Syntaxbaum AST. Dieser Schritt wird im Allgemeinen mit einer Toolbibliothek eines Drittanbieters durchgeführt, z. B. Antlr. Führen Sie eine Syntaxanalyse für AST durch es existiert, ob das Feld existiert, ob die SQL-Semantik falsch ist.
(2) Compiler (Physischer Plan): Kompilieren Sie AST, um einen logischen Ausführungsplan zu generieren.
(3) Optimierer (Abfrageoptimierer): Optimieren Sie den logischen Ausführungsplan.
(4) Ausführung: Konvertieren Sie den logischen Ausführungsplan in einen physischen Plan, der ausgeführt werden kann. Für Hive ist es MR/Spark.
Hive basiert auf Hadoop und alle Hive-Daten werden in HDFS gespeichert. Die Datenbank kann Daten in einem Blockgerät oder einem lokalen Dateisystem speichern. Da Hive für Data Warehouse-Anwendungen konzipiert ist, erfordert der Inhalt des Data Warehouse mehr Lese- und weniger Schreibaufwand. Daher wird nicht empfohlen, Daten in Hive neu zu schreiben. Alle Daten werden beim Laden ermittelt. Da die Daten in der Datenbank normalerweise häufig geändert werden müssen, können Sie INSERT INTO... VALUES zum Hinzufügen von Daten und UPDATE... SET zum Ändern der Daten verwenden. Vergleich zwischen Hive und DatenbankDa Hive eine SQL-ähnliche Abfragesprache HQL (Hive Query Language) verwendet, ist Hive als Datenbank leicht zu verstehen. Tatsächlich haben Hive und Datenbank aus struktureller Sicht nichts gemeinsam, abgesehen davon, dass sie ähnliche Abfragesprachen haben. In diesem Abschnitt werden die Unterschiede zwischen Hive und Datenbanken in vielerlei Hinsicht erläutert. Datenbanken können in Online-Anwendungen verwendet werden, Hive ist jedoch für Data Warehouses konzipiert. Wenn Sie dies wissen, können Sie die Eigenschaften von Hive aus Anwendungsperspektive besser verstehen.
1. Abfragesprache
Da SQL in Data Warehouses weit verbreitet ist, ist die SQL-ähnliche Abfragesprache HQL speziell auf die Eigenschaften von Hive ausgelegt. Entwickler, die mit der SQL-Entwicklung vertraut sind, können Hive problemlos für die Entwicklung verwenden. 2. Datenspeicherort Hive basiert auf Hadoop und alle Hive-Daten werden in HDFS gespeichert. Die Datenbank kann Daten in einem Blockgerät oder einem lokalen Dateisystem speichern. 3. Datenaktualisierung: Da Hive für Data Warehouse-Anwendungen konzipiert ist, erfordert der Inhalt des Data Warehouse mehr Lese- und weniger Schreibaufwand. Daher wird nicht empfohlen, Daten in Hive neu zu schreiben. Alle Daten werden beim Laden ermittelt. Da die Daten in der Datenbank normalerweise häufig geändert werden müssen, können Sie INSERT INTO... VALUES zum Hinzufügen von Daten und UPDATE... SET zum Ändern der Daten verwenden.6. Ausführungsverzögerung: Wenn Hive Daten abfragt, muss die gesamte Tabelle gescannt werden, da kein Index vorhanden ist, sodass die Verzögerung hoch ist. Ein weiterer Faktor, der zu einer hohen Hive-Ausführungslatenz beiträgt, ist das MapReduce-Framework. Da MapReduce selbst eine hohe Latenz aufweist, kommt es auch zu einer hohen Latenz, wenn MapReduce zum Ausführen von Hive-Abfragen verwendet wird. Im Gegensatz dazu ist die Ausführungslatenz der Datenbank gering. Dieser niedrige Wert ist natürlich an Bedingungen geknüpft, das heißt, wenn der Datenumfang klein genug ist, um die Verarbeitungskapazitäten der Datenbank zu überschreiten, kann das parallele Rechnen von Hive offensichtlich seine Vorteile zeigen.
7. Skalierbarkeit: Da Hive auf Hadoop basiert, stimmt die Skalierbarkeit von Hive mit der Skalierbarkeit von Hadoop überein (der größte Hadoop-Cluster der Welt befindet sich bei Yahoo! mit einer Größe von etwa 4000 Knoten). Aufgrund der strengen Einschränkungen der ACID-Semantik verfügt die Datenbank nur über sehr begrenzte Erweiterungszeilen. Die derzeit fortschrittlichste parallele Datenbank, Oracle, verfügt theoretisch über eine Erweiterungsfähigkeit von nur etwa 100 Einheiten.
8. Datenumfang: Da Hive auf einem Cluster basiert und MapReduce für die parallele Datenverarbeitung verwenden kann, kann es entsprechend große Datenmengen unterstützen.
Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmierunterricht! !
Das obige ist der detaillierte Inhalt vonWelche Leistungen bieten Bienenstockkomponenten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!