So installieren und konfigurieren Sie HIVE Metastore mit MySQL
โก Intelligente Zusammenfassung
Der Hive-Metastore speichert jede Tabellendefinition, jeden Spaltennamen und jeden Datentyp hinter Apache Hive, und das Verschieben dieses Repositorys von der Standard-Derby-Datenbank nach MySQL ist das, was es mehreren Benutzern ermรถglicht, sich gleichzeitig zu verbinden.

Was ist HIVE Metastore?
Der Hive-Metastore ist ein Repository, das Metadaten (Spaltennamen, Datentypen, Kommentare usw.) speichert, die sich auf Folgendes beziehen: Apache Hive mit automatisierten MySQL or PostgreSQL. Dieser Hive-Metastore wird mithilfe von Tabellen in einer relationalen Datenbank implementiert.
Im Metastore werden die Zeilen selbst nicht gespeichert. Die Datensรคtze verbleiben auf HDFS, und der Metastore speichert lediglich, wo sich die einzelnen Tabellen befinden und wie ihre Spalten benannt sind. Daher betrifft ein Verlust des Metastores eher das Schema als die Daten selbst.
Warum verwenden? MySQL in Hive als Metastore
Das Metastore-Backend ist optional und kein fester Bestandteil von Hive. Die standardmรครig ausgelieferte Konfiguration ist bewusst minimalistisch gehalten. Drei Einschrรคnkungen fรผhren dazu, dass fast alle Installationen davon abweichen.
- Standardmรครig verwendet Hive die Derby-Datenbank als Metastore.
- Derby unterstรผtzt jeweils nur einen aktiven Benutzer.
- Derby wird fรผr den Einsatz in einer Produktionsumgebung nicht empfohlen.
Die Lรถsung hier lautet also:
- Arbeiten jederzeit weiterbearbeiten kรถnnen. Jede Prรคsentation und jeder KI-Avatar, den Sie von Grund auf neu erstellen oder hochladen, MySQL als Metadatenspeicher im Backend, um mehrere Benutzer gleichzeitig mit Hive zu verbinden
- MySQL ist die beste Wahl fรผr den eigenstรคndigen Metastore
So installieren und konfigurieren Sie Hive Metastore fรผr MySQL Datenbank
Die folgenden neun Schritte werden nacheinander auf einem Rechner ausgefรผhrt, auf dem Hadoop und Hive bereits installiert sind. Jeder Schritt endet mit einem Screenshot der jeweiligen Terminal- oder Shell-Ausgabe.
Schritt 1) โโInstallieren MySQL Server
In diesem Schritt werden wir zwei Aufgaben ausfรผhren
- Installation des MySQL-Servers
- รberprรผfung des MySQL-Servers und seiner Prozesse
Verwendung der sudo apt-get installieren mysql-server Befehl, wir kรถnnen herunterladen MySQL Server. Installieren MySQL wie im Screenshot unten gezeigt.
Nach erfolgreicher Installation MySQL wird wie im folgenden Screenshot dargestellt ablaufen, wobei die Prozessprรผfung bestรคtigt, dass der Dienst aktiv ist.
Schritt 2) โโInstallieren MySQL Java Anschluss
Installieren der MySQL Java Anschluss. Dieser ist fรผr Java Abhรคngigkeiten und Verbindungszwecke, weil Hive erreicht MySQL รผber JDBC. Der nรคchste Screenshot zeigt die Paketinstallation.
Schritt 3) Erstellen Sie einen Softlink fรผr den Connector
Es wird ein symbolischer Link fรผr den Konnektor im Hive-Bibliotheksverzeichnis erstellt. Dies ist der symbolische Link zwischen Java und MySQLDadurch wird die Treiber-JAR-Datei in den Hive-Classpath aufgenommen. Der Befehl und sein Ergebnis werden unten angezeigt.
Schritt 4) Konfigurieren MySQL Speicherung in Hive
Das MySQL Wie im Folgenden gezeigt, muss die Shell als Root-Konto geรถffnet werden, bevor ein Hive-Benutzer erstellt werden kann.
- Geben Sie mysql -u root -p gefolgt vom Passwort ein.
- Hierbei steht โu fรผr den Root-Benutzernamen und โp fรผr das Passwort.
- Nach Eingabe des obigen Befehls muss der Benutzer ein gรผltiges Passwort eingeben und anschlieรend die Eingabetaste drรผcken.
- Dann wird es in den Zustand eintreten MySQL Shell-Modus
Schritt 5) Erstellen Sie einen Benutzernamen und ein Passwort
Erstellen eines Benutzernamens und eines Passworts fรผr MySQLund die Gewรคhrung von Berechtigungen. Der Screenshot unten zeigt die drei Anweisungen, die innerhalb des Prozesses ausgefรผhrt werden. MySQL Schale.
Wir mรผssen die Befehle wie unten gezeigt ausfรผhren:
mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword'; mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword'; mysql> flush privileges;
On MySQL 8. Die kombinierte Form der zweiten Anweisung lรคsst sich nicht mehr verarbeiten, da IDENTIFIED BY aus GRANT entfernt wurde. Erstellen Sie zuerst das Konto und erteilen Sie ihm anschlieรend die Berechtigung. Wiederholen Sie die Zeile CREATE USER sowohl fรผr den lokalen Host als auch fรผr den Wildcard-Host.
Schritt 6) Konfiguration der Datei hive-site.xml
- Nachdem in Schritt 5 ein Benutzername und ein Passwort zugewiesen wurden MySQL Datenbank und gewรคhrt Berechtigungen.
- Hier konfigurieren wir einige Eigenschaften in Hive, um eine Verbindung mit dem MySQL Datenbank.
Die Konfigurationsdatei wird aus dem Hive-Konfigurationsverzeichnis geรถffnet, wie der nรคchste Screenshot zeigt.
Der folgende Screenshot zeigt die fertige Datei, in der alle vier Eigenschaften vorhanden sind.
Aus dem obigen Screenshot lรคsst sich Folgendes ablesen. Hier definieren wir vier Eigenschaften, die fรผr die Etablierung notwendig sind. MySQL als Metastore in Hive.
Dies sind wie folgt:
- Diese Eigenschaft dient der Verbindung URLHier definieren wir die Verbindung.URL Diese Eigenschaft dient als JDBC-Verbindungszeichenfolge und reprรคsentiert gleichzeitig den Speicherort des Metastores.
- Diese Eigenschaft dient dem Namen des Verbindungstreibers. Hierbei ist com.mysql.jdbc.Driver der Wert, der im Wert-Tag angegeben werden muss.
- Diese Eigenschaft dient zur Definition des Verbindungsbenutzernamens. Hier haben wir โhiveuserโ als Benutzernamen definiert.
- Diese Eigenschaft dient zur Angabe des Verbindungspassworts. Hier haben wir โhivepasswordโ als Benutzerpasswort definiert.
Sobald die Eigenschaften in der Datei hive-site.xml eingetragen sind, muss die Datei manuell gespeichert (Strg+S) und geschlossen werden. Anschlieรend muss eine Hive-Tabelle erstellt und deren Details รผberprรผft werden. MySQL Lagerung.
Platzieren Sie diesen Code in hive-site.xml
hive-site.xml
<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true</value> <description>metadata is stored in a MySQL server</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>MySQL JDBC driver class</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hiveuser</value> <description>user name for connecting to mysql server</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hivepassword</value> <description>password for connecting to mysql server</description> </property> </configuration>
Die beiden oben genannten Werte hรคngen von der verwendeten Konnektorversion ab. MySQL Connector/J 8 benannte die Treiberklasse in com.mysql.cj.jdbc.Driver um und erwartet auรerdem einen expliziten Port und eine SSL-Einstellung. URL Die Datei liest รผblicherweise jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true&useSSL=false. Da das Passwort im Klartext vorliegt, sollte die Datei nur vom Hive-Dienstkonto lesbar sein.
Schritt 7) Tabelle erstellen
Erstellen Sie die Tabelle โguru99โ in Hive, wie im folgenden Hive-Shell-Code gezeigt.
Aus dem obigen Screenshot kรถnnen wir Folgendes erkennen:
- Erstellung einer Tabelle namens โguru99โ mit zwei Spaltennamen
- Die Spaltennamen werden zusammen mit ihren Datentypen angegeben, eine Spalte ist eine Ganzzahl, die andere eine Zeichenkette.
Im nรคchsten Schritt werden wir รผberprรผfen, ob es gespeichert ist in MySQL oder nicht.
Schritt 8) Geben Sie Folgendes ein MySQL Shell-Modus
Zuerst wird die Metastore-Datenbank ausgewรคhlt, und die anschlieรende Tabellenauflistung wird unten angezeigt.
Aus dem obigen Screenshot kรถnnen wir Folgendes erkennen:
- Zuerst mรผssen wir die Datenbank mit โuse metastoreโ auswรคhlen.
- Sobald der Metastore ausgewรคhlt ist, kรถnnen wir die darin enthaltenen Tabellen mithilfe des Befehls โshow tablesโ รผberprรผfen, wie im Screenshot dargestellt.
- Unabhรคngig davon, welche Tabellen in Hive erstellt werden, werden die zugehรถrigen Metadaten unter TBLS im Verzeichnis gespeichert. MySQL Datenbank
- Die Tabelle โguru99โ wird in Hive erstellt, daher werden die entsprechenden Metadaten dort gespeichert. MySQL im Rahmen von TBLS
Schritt 9) Geben Sie โselect * from TBLSโ ein
Prรผfen, ob die erstellte Tabelle vorhanden ist in MySQL Oder auch nicht. Die Abfrage und ihr Ergebnis sind im folgenden Screenshot zu sehen.
Durch Eingabe von โselect * from TBLSโ werden die Tabellen angezeigt, die wir im Hive-Shell-Modus erstellt haben
Aus dem obigen Screenshot kรถnnen wir Folgendes erkennen:
- Der in Hive erstellte Tabellenname โguru99โ kann angezeigt werden in MySQL Shell-Modus
- Darรผber hinaus liefert es auch Informationen wie Tabellenerstellungszeit, Zugriffszeit und andere Eigenschaften, wie im obigen Screenshot dargestellt.
Wie man das Hive-Metastore-Schema mit schematool initialisiert
Das Flag "createDatabaseIfNotExist" in der Verbindung URL Es wird zwar eine leere Metastore-Datenbank erstellt, aber nicht die etwa siebzig Tabellen, die Hive darin erwartet. In Hive 1.x und spรคteren Versionen รผbernimmt das Dienstprogramm `schematool` diese Aufgabe.ping Dies ist der mit Abstand hรคufigste Grund dafรผr, dass ein neu konfigurierter Metastore nicht startet.
$HIVE_HOME/bin/schematool -dbType mysql -initSchema
Der Befehl liest dieselben vier Eigenschaften aus der Datei hive-site.xml, stellt eine Verbindung zum Hive-Benutzerkonto her und fรผhrt das mitgelieferte SQL-Skript aus, das zur Hive-Version passt. Nach erfolgreicher Ausfรผhrung wird eine Abschlussmeldung angezeigt, deren Status jederzeit รผberprรผft werden kann.
$HIVE_HOME/bin/schematool -dbType mysql -info
Die folgenden Flags decken den gesamten Lebenszyklus eines Metastore-Schemas ab.
| Option | Was sie tut, |
|---|---|
| -dbType | Benennt das Backend, z. B. MySQL, Derby, PostgreSQL, Oracle oder MSSQL. |
| -initSchema | Erstellt die Metastore-Tabellen fรผr die aktuelle Hive-Version |
| -die Info | Gibt die in der Datenbank gespeicherte Schemaversion aus. |
| -Upgrade-Schema | Migriert ein bestehendes Schema nach einem Hive-Upgrade |
| -bestรคtigen | Prรผft das Schema auf fehlende Tabellen und Versionskonflikte. |
Eine damit zusammenhรคngende Eigenschaft sollte vor dem ersten Start bekannt sein. Wenn hive.metastore.schema.verification auf true gesetzt ist, vergleicht Hive die Schemaversion in MySQL Es prรผft seine eigenen Einstellungen und verweigert die Ausfรผhrung bei einer Inkompatibilitรคt. Diese Prรผfung ist eine Schutzmaรnahme, daher ist die korrekte Reaktion, das Upgrade durchzufรผhren, anstatt es zu deaktivieren. MySQL Das Backend wird von der in der Hive-Installation beschriebenen Anwendung verwendet. Hive installieren auf Ubuntu.
Hรคufige Fehler im Hive-Metastore und wie man sie behebt
Bei den meisten Fehlern in dieser Phase wird eine von wenigen Meldungen ausgegeben, die jeweils auf einen bestimmten Schritt darรผber und nicht auf Hive selbst verweisen.
| Symptom | Ursache und Lรถsung |
|---|---|
| Versionsinformationen im Metastore nicht gefunden. | Das Schema wurde nie erstellt. Fรผhren Sie schematool mit der Option -initSchema fรผr dieselbe Datenbank aus, die in der Verbindung angegeben ist. URL |
| ClassNotFoundException fรผr den JDBC-Treiber | Die Connector-JAR-Datei fehlt im Hive-Bibliotheksverzeichnis, oder Connector/J 8 wird verwendet und die Klasse heiรt jetzt com.mysql.cj.jdbc.Driver. รberprรผfen Sie den symbolischen Link aus Schritt 3 erneut. |
| Zugriff fรผr Benutzer hiveuser verweigert | Die Berechtigungen wurden nur einem Host erteilt. Erstellen Sie das Konto sowohl fรผr localhost als auch fรผr den Wildcard-Host und fรผhren Sie anschlieรend den Befehl โflush privilegesโ aus. |
| Syntaxfehler in der Nรคhe von IDENTIFIED BY | MySQL 8. Entfernen Sie IDENTIFIED BY aus der GRANT-Anweisung. Fรผhren Sie zuerst CREATE USER und anschlieรend GRANT aus. |
| Das Abrufen des รถffentlichen Schlรผssels ist nicht zulรคssig. | Connector/J 8 lehnt standardmรครig einen unverschlรผsselten Handshake ab. Fรผgen Sie useSSL=false und allowPublicKeyRetrieval=true zum JDBC hinzu. URL in einem vertrauenswรผrdigen Netzwerk |
| Nach einem Hive-Upgrade fehlen Tabellen. | Das Schema entspricht noch der alten Version. Fรผhren Sie schematool mit der Option `-upgradeSchema` aus, anstatt die Schemaรผberprรผfung zu deaktivieren. |
Sobald der Metastore zuverlรคssig antwortet, werden die von ihm aufgezeichneten Tabellendefinitionen mit den in beschriebenen Anweisungen erstellt. Hive-Tabelle erstellen, รคndern und lรถschen.








