Video: HDInsight: Fast Interactive Queries with Hive on LLAP | Azure Friday 2024
Wenn Sie die gezeigten Elemente von Apache Hive untersuchen, sehen Sie unten, dass Hive auf dem Hadoop Distributed File System (HDFS) sitzt.) und MapReduce-Systeme.
Im Fall von MapReduce zeigt die Abbildung sowohl die Hadoop 1- als auch die Hadoop 2-Komponenten. Mit Hadoop 1 werden Hive-Abfragen in MapReduce-Code konvertiert und mit der MapReduce v1 (MRv1) -Infrastruktur wie dem JobTracker und TaskTracker ausgeführt.
Mit Hadoop 2 hat YARN die Ressourcenverwaltung und -planung vom MapReduce-Framework entkoppelt. Hive-Abfragen können weiterhin in MapReduce-Code konvertiert und ausgeführt werden, jetzt mit MapReduce v2 (MRv2) und der YARN-Infrastruktur.
Es gibt ein neues Framework namens Apache Tez, das entwickelt wurde, um die Hive-Performance für Batch-Style-Abfragen zu verbessern und kleinere interaktive (auch Echtzeit ) Abfragen zu unterstützen. Zur Zeit des Schreibens ist das Apache Tez Projekt noch in der Inkubation und hat noch keine produktionsfertige Version.
Wenn es Ihnen hilft, zu visualisieren, wie alle Teile zusammenpassen, denken Sie an die HDFS- und MapReduce-Systeme als Teile des Betriebssystems Apache Hadoop, an Hive - sowie an andere Komponenten wie HBase. - als übergeordnete Funktionen oder Anwendungen. (Sie können ein gemeinsames Thema sehen: HDFS stellt den Speicher bereit, und MapReduce bietet die parallele Verarbeitungsfähigkeit für übergeordnete Funktionen innerhalb des Hadoop-Ökosystems.)
Im Diagramm sehen Sie den Hive-Treiber, der das HiveQL kompiliert, optimiert und ausführt. Der Hive-Treiber kann HiveQL-Anweisungen und -Befehle lokal ausführen oder einen MapReduce-Job erstellen, abhängig von der jeweiligen Aufgabe. Der Hive-Treiber speichert Tabellenmetadaten im Metastore und in seiner Datenbank.
Sie kennen wahrscheinlich SQL und das relationale Datenbankmodell aus der Welt der RDBMSs. Eine Tabelle oder Beziehung besteht aus vertikalen Spalten und horizontalen Zeilen. Zellen werden dort gespeichert, wo sich die Zeilen und Spalten schneiden. Wenn Sie nicht mit SQL und dem relationalen Datenbankmodell vertraut sind, finden Sie hilfreiche Lernquellen mit Ihrer bevorzugten Suchmaschine.
Standardmäßig enthält Hive das Apache Derby RDBMS, das mit dem Metastore im sogenannten eingebetteten Modus konfiguriert ist. Eingebetteter Modus bedeutet, dass der Hive-Treiber, der Metastore und Apache Derby alle in einer Java Virtual Machine (JVM) ausgeführt werden.
Diese Konfiguration eignet sich gut für Lernzwecke, aber der eingebettete Modus kann nur eine einzige Hive-Sitzung unterstützen, daher wird er normalerweise nicht in Produktionsumgebungen mit mehreren Benutzern verwendet.Zwei andere Modi - lokal und remote - können mehrere Hive-Sitzungen in Produktionsumgebungen besser unterstützen. Außerdem können Sie jedes RDBMS konfigurieren, das mit der JDBC-API (Application Programming Interface) der Java-Datenbankkonnektivität kompatibel ist. (Beispiele hierfür sind MySQL und DB2.)
Der Schlüssel zur Anwendungsunterstützung ist der Hive Thrift Server, der es einem großen Satz von Clients ermöglicht, auf das Hive-Subsystem zuzugreifen. Der Open-Source-SQL-Client SQuirreL ist als Beispiel enthalten. Der Hauptpunkt ist, dass jede JDBC-kompatible Anwendung über den gebündelten JDBC-Treiber auf Hive zugreifen kann.
Die gleiche Aussage gilt für Clients, die mit Open Database Connectivity (ODBC) kompatibel sind - zum Beispiel ermöglichen unixODBC und das Dienstprogramm isql, die normalerweise mit Linux gebündelt sind, den Zugriff auf Hive von entfernten Linux-Clients aus.
Wenn Sie Microsoft Excel verwenden, werden Sie darüber erfreut sein, dass Sie auf Hive zugreifen können, nachdem Sie den Microsoft ODBC-Treiber auf Ihrem Client-System installiert haben. Wenn Sie auf Hive aus anderen Programmiersprachen als Java (z. B. PHP oder Python) zugreifen müssen, ist Apache Thrift die Lösung. Apache Thrift-Clients verbinden sich wie der JDBC- und der ODBC-Client über den Hive Thrift Server mit Hive.
Um mit der Hive-Architekturzeichnung fortzufahren, beachten Sie, dass Hive eine Befehlszeilenschnittstelle (Command Line Interface, CLI) enthält, in der Sie ein Linux-Terminalfenster verwenden können, um Abfragen und Verwaltungsbefehle direkt an den Hive-Treiber auszugeben. Wenn ein grafischer Ansatz Ihre Geschwindigkeit ist, gibt es auch eine praktische Web-Schnittstelle, so dass Sie auf Ihre von Hive verwalteten Tabellen und Daten über Ihren bevorzugten Browser zugreifen können.
Es gibt eine weitere Webbrowser-Technologie namens Hue, die eine grafische Benutzeroberfläche (GUI) für Apache Hive bereitstellt. Einige Hadoop-Benutzer möchten lieber eine GUI zur Verfügung haben als nur eine Befehlszeilenschnittstelle (Command Line Interface, CLI). Zusammen mit Hive unterstützt Hue auch andere wichtige Hadoop-Technologien wie HDFS, MapReduce / YARN, HBase, Zookeeper, Oozie, Pig und Sqoop. Sie werden den Namen für Hues Apache Hive GUI mögen - es heißt Beeswax.