Hive ist ein weit verbreitetes Big-Data-Analysetool in der Branche und ein fantastischer Ausgangspunkt, wenn Sie neu bei Big Data sind. Diese Apache Hive-Lektion behandelt die Grundlagen von Apache Hive, warum ein Hive notwendig ist, seine Funktionen und alles andere, was Sie wissen sollten.
Lassen Sie uns zunächst das Hadoop-Framework verstehen, auf dem Apache Hive aufbaut.
Apache Hadoop
Apache Hadoop ist ein kostenloses und Open-Source Plattform zum Speichern und Verarbeiten großer Datensätze mit einer Größe von Gigabyte bis Petabyte. Hadoop ermöglicht das Clustern zahlreicher Computer, um riesige Datensätze parallel zu analysieren, anstatt einen einzigen großen Computer zum Speichern und Analysieren der Daten zu benötigen.
MapReduce und Hadoop Distributed File System sind zwei der Komponenten:
- MapReduce – MapReduce ist eine parallele Programmiertechnik zur Handhabung riesiger Mengen organisierter, halbstrukturierter und unstrukturierter Daten auf Commodity-Hardware-Clustern.
- HDFS – HDFS (Hadoop Distributed File System) ist eine Hadoop-Framework-Komponente, die Daten speichert und verarbeitet. Es ist ein fehlertolerantes Dateisystem, das auf Standardhardware läuft
Verschiedene Unterprojekte (Tools) im Hadoop-Ökosystem, darunter Sqoop, Pig und Hive, werden verwendet, um Hadoop-Module zu unterstützen.
- Bienenstock – Hive ist ein Framework zum Schreiben von Skripten im SQL-Stil, die MapReduce-Berechnungen durchführen.
- Schwein – Pig ist eine prozedurale Programmiersprache, die verwendet werden kann, um ein Skript für MapReduce-Prozesse zu erstellen.
- Sqoop – Sqoop ist ein Tool zum Importieren und Exportieren von Daten zwischen HDFS und RDBMS.
Was ist Apache Hive?
Apache Hive ist Open-Source Data Warehouse Programm zum Lesen, Schreiben und Verwalten riesiger Datensätze, die direkt im Apache Hadoop Distributed File System (HDFS) oder anderen Datenspeichersystemen wie Apache HBase gespeichert sind.
SQL-Entwickler können Hive verwenden, um Hive Query Language (HQL)-Anweisungen für Datenabfragen und -analysen zu erstellen, die mit regulären SQL-Anweisungen vergleichbar sind. Es wurde entwickelt, um die MapReduce-Programmierung zu vereinfachen, indem es die Notwendigkeit beseitigt, langen Java-Code zu lernen und zu schreiben. Stattdessen können Sie Ihre Abfragen in HQL schreiben, und Hive erstellt die Karte und reduziert die Funktionen für Sie.
Die SQL-ähnliche Schnittstelle von Apache Hive ist zum Goldstandard für die Durchführung von Ad-hoc-Suchen, die Zusammenfassung und Analyse von Hadoop-Daten geworden. Wenn in der Cloud enthalten Rechennetzwerke, ist diese Lösung besonders kostengünstig und skalierbar, weshalb viele Firmen, darunter Netflix und Amazon, Apache Hive kontinuierlich weiterentwickeln und verbessern.
Geschichte
Während ihrer Zeit bei Facebook haben Joydeep Sen Sarma und Ashish Thusoo gemeinsam Apache Hive entwickelt. Sie erkannten beide, dass sie einige ziemlich komplizierte Java Map-Reduce-Aufgaben erstellen mussten, um das Beste aus Hadoop herauszuholen. Sie erkannten, dass sie ihre schnell wachsenden Engineering- und Analyseteams nicht in den Fähigkeiten ausbilden könnten, die sie benötigen würden, um Hadoop im gesamten Unternehmen einzusetzen. Ingenieure und Analysten verwendeten häufig SQL als Benutzerschnittstelle.
Obwohl SQL die meisten Analyseanforderungen erfüllen konnte, beabsichtigten die Entwickler auch, die Programmierbarkeit von Hadoop zu integrieren. Apache Hive entstand aus diesen beiden Zielen: eine SQL-basierte deklarative Sprache, die es Entwicklern auch ermöglichte, ihre eigenen Skripte und Programme einzubringen, wenn SQL nicht ausreichte.
Es wurde auch entwickelt, um zentralisierte Metadaten (auf Hadoop-Basis) über alle Datensätze im Unternehmen zu speichern, um den Aufbau datengesteuerter Organisationen zu erleichtern.
Wie funktioniert Apache Hive?
Kurz gesagt konvertiert Apache Hive ein Eingabeprogramm, das in der Sprache HiveQL (SQL-ähnlich) geschrieben ist, in eine oder mehrere Java MapReduce-, Tez- oder Spark-Aufgaben. (Alle diese Ausführungs-Engines sind mit Hadoop YARN kompatibel.) Danach ordnet Apache Hive die Daten in Tabellen für das Hadoop Distributed File System (HDFS) an und führt die Aufgaben auf einem Cluster aus, um eine Antwort zu erhalten.
Datum
Die Apache Hive-Tabellen sind genauso angeordnet wie Tabellen in einer relationalen Datenbank, wobei die Größe der Dateneinheiten von größer bis kleiner reicht. Datenbanken bestehen aus Tabellen, die in Divisionen unterteilt sind, die wiederum in Buckets unterteilt sind. HiveQL (Hive Query Language) wird verwendet, um auf die Daten zuzugreifen, die geändert oder angehängt werden können. Tabellendaten werden innerhalb jeder Datenbank serialisiert, und jede Tabelle hat ihr eigenes HDFS-Verzeichnis.
Architektur
Jetzt sprechen wir über den wichtigsten Aspekt der Hive-Architektur. Die Komponenten von Apache Hive sind wie folgt:
Metastore — Es verfolgt Informationen zu jeder Tabelle, wie z. B. ihre Struktur und ihren Standort. Die Partitionsmetadaten sind ebenfalls in Hive enthalten. Auf diese Weise kann der Treiber den Fortschritt verschiedener Datensätze verfolgen, die über den Cluster verteilt sind. Die Daten werden in einem herkömmlichen RDBMS-Format gespeichert. Hive-Metadaten sind für den Fahrer äußerst wichtig, um den Überblick über die Daten zu behalten. Der Backup-Server dupliziert Daten regelmäßig, damit sie im Falle eines Datenverlusts wiederhergestellt werden können.
LED Treiber – HiveQL-Anweisungen werden von einem Treiber empfangen, der als Controller fungiert. Durch das Einrichten von Sitzungen initiiert der Treiber die Ausführung der Anweisung. Es verfolgt die Lebensdauer und den Fortschritt der Führungskraft. Während der Ausführung einer HiveQL-Anweisung speichert der Treiber die erforderlichen Metadaten. Es dient auch als Sammelpunkt für Daten oder Abfrageergebnisse nach dem Reduzieren-Prozess.
Compiler – Es führt die HiveQL-Abfragekompilierung aus. Die Abfrage wird nun in einen Ausführungsplan konvertiert. Die Aufgaben sind im Plan aufgeführt. Es enthält auch die Schritte, die MapReduce ausführen muss, um das Ergebnis so zu erhalten, wie es von der Abfrage übersetzt wurde. Die Abfrage wird vom Hive-Compiler (AST) in einen abstrakten Syntaxbaum umgewandelt. Konvertiert den AST in einen gerichteten azyklischen Graphen, nachdem auf Kompatibilität und Kompilierzeitfehler (DAG) geprüft wurde.
Optimierer – Es optimiert DAG, indem es verschiedene Änderungen am Ausführungsplan durchführt. Es kombiniert Transformationen für eine verbesserte Effizienz, z. B. das Umwandeln einer Pipeline von Joins in einen einzigen Join. Um die Geschwindigkeit zu verbessern, kann der Optimierer Aktivitäten aufteilen, z. B. das Anwenden einer Transformation auf Daten, bevor eine Reduktionsoperation durchgeführt wird.
Testamentsvollstrecker – Der Ausführende führt die Aufgaben aus, wenn die Kompilierung und Optimierung abgeschlossen sind. Die Jobs werden vom Executor weitergeleitet.
CLI, UI und Thrift-Server – Die Befehlszeilenschnittstelle (CLI) ist eine Benutzeroberfläche, die es einem externen Benutzer ermöglicht, mit Hive zu kommunizieren. Der Thrift-Server von Hive, ähnlich dem JDBC- oder ODBC-Protokoll, ermöglicht es externen Clients, über ein Netzwerk mit Hive zu kommunizieren.
Sicherheit
Apache Hive ist in die Hadoop-Sicherheit integriert, die Kerberos für die gegenseitige Client-Server-Authentifizierung verwendet. Das HDFS schreibt Berechtigungen für neu generierte Dateien in Apache Hive vor, sodass Sie diese vom Benutzer, der Gruppe und anderen genehmigen können.
Hauptfunktionen
- Hive unterstützt externe Tabellen, mit denen Sie Daten verarbeiten können, ohne sie in HDFS zu speichern.
- Es ermöglicht auch die Datensegmentierung auf Tabellenebene, um die Geschwindigkeit zu erhöhen.
- Apache Hive erfüllt hervorragend die Low-Level-Schnittstellenanforderungen von Hadoop.
- Hive vereinfacht die Zusammenfassung, Abfrage und Analyse von Daten.
- HiveQL erfordert keine Programmierkenntnisse; ein einfaches Verständnis von SQL-Abfragen ist ausreichend.
- Wir können Hive auch verwenden, um Ad-hoc-Abfragen zur Datenanalyse durchzuführen.
- Es ist skalierbar, vertraut und anpassungsfähig.
- HiveQL erfordert keine Programmierkenntnisse; ein einfaches Verständnis von SQL-Abfragen ist ausreichend.
Benefits
Apache Hive ermöglicht Tagesabschlussberichte, tägliche Transaktionsauswertungen, Ad-hoc-Suchen und Datenanalysen. Die umfassenden Einblicke von Apache Hive verschaffen Ihnen erhebliche Wettbewerbsvorteile und erleichtern es Ihnen, auf Marktanforderungen zu reagieren.
Hier sind einige der Vorteile, wenn solche Informationen leicht verfügbar sind:
- Benutzerfreundlichkeit – Mit seiner SQL-ähnlichen Sprache ist die Abfrage von Daten einfach zu verstehen.
- Beschleunigtes Einfügen von Daten — Da Apache Hive das Schema liest, ohne den Tabellentyp oder die Schemadefinition zu überprüfen, müssen die Daten nicht im internen Format der Datenbank gelesen, geparst und auf Datenträger serialisiert werden. Im Gegensatz dazu müssen Daten in einer herkömmlichen Datenbank jedes Mal validiert werden, wenn sie hinzugefügt werden.
- Hervorragende Skalierbarkeit, Flexibilität und Kosteneffizienz – Da Daten im HDFS gespeichert werden, kann Apache Hive Hunderte von Petabyte an Daten speichern, was es zu einer weitaus skalierbareren Option als eine typische Datenbank macht. Apache Hive als Cloud-basierter Hadoop-Dienst ermöglicht es Kunden, virtuelle Server schnell hoch- und herunterzufahren, um sich ändernden Workloads gerecht zu werden.
- Umfangreiche Arbeitskapazität – Große Datensätze können bis zu 100,000 Abfragen pro Stunde verarbeiten.
Einschränkungen
- Im Allgemeinen haben Apache Hive-Abfragen eine sehr hohe Latenz.
- Die Unterabfrageunterstützung ist begrenzt.
- Echtzeitabfragen und Änderungen auf Zeilenebene sind in Apache Hive nicht verfügbar.
- Materialisierte Ansichten werden nicht unterstützt.
- Im Hive werden Aktualisierungs- und Löschaktionen nicht unterstützt.
- Nicht für OLTP (Online-Übergangsverfahren) vorgesehen.
Erste Schritte mit Apache Hive
Apache Hive ist ein starker Hadoop-Partner, der Ihre Arbeitsabläufe vereinfacht und optimiert. Um das Beste aus Apache Hive herauszuholen, ist eine nahtlose Integration unerlässlich. Der erste Schritt ist, zum zu gehen Website .
1. Installation Hive von einer stabilen Version
Laden Sie zunächst die neueste stabile Version von Hive von einem der Apache-Download-Mirrors herunter (siehe Hive-Veröffentlichungen). Anschließend muss der Tarball entpackt werden. Dadurch wird ein Unterordner namens hive-xyz erstellt (wobei xyz die Versionsnummer ist):
Setzen Sie die Umgebungsvariable HIVE_HOME so, dass sie auf das Installationsverzeichnis zeigt:
Fügen Sie schließlich $HIVE_HOME/bin zu Ihrer hinzu PATH
:
2. Laufender Bienenstock
Hive verwendet Hadoop, also:
- Sie müssen Hadoop in Ihrem Pfad haben ODER
3. DLL-Operation
Hive-Tabelle erstellen
generiert eine Tabelle namens pokes mit zwei Spalten, von denen die erste eine Ganzzahl und die zweite eine Zeichenfolge ist.
Tabellen durchsuchen
Alle Tabellen auflisten
Ändern und Löschen von Tabellen
Tabellennamen können geändert und Spalten hinzugefügt oder ersetzt werden:
Es ist erwähnenswert, dass REPLACE COLUMNS alle vorhandenen Spalten ersetzt, während nur die Struktur der Tabelle und nicht die Daten geändert werden. In der Tabelle muss ein nativer SerDe verwendet werden. REPLACE COLUMNS kann auch verwendet werden, um Spalten aus dem Schema einer Tabelle zu entfernen:
Ablegen von Tabellen
Es gibt viele zusätzliche Operationen und Funktionen in Apache Hive, über die Sie sich informieren können, indem Sie die offizielle Website besuchen.
Zusammenfassung
Die Hive-Definition ist eine Datenprogrammschnittstelle zum Abfragen und Analysieren riesiger Datensätze, die auf Apache Hadoop aufbauen. Profis ziehen es anderen Programmen, Tools und Software vor, da es hauptsächlich für umfangreiche Hive-Daten entwickelt wurde und einfach zu bedienen ist.
Ich hoffe, dieses Tutorial hilft Ihnen dabei, mit Apache Hive zu starten und Ihre Arbeitsabläufe effizienter zu gestalten. Lass es uns in den Kommentaren wissen.
Hinterlassen Sie uns einen Kommentar