HIVE-Metastore-Konfiguration mit MYSQL

Anonim

Warum MySQL in Hive als Metastore verwenden:

  • Standardmäßig wird Hive mit einer Derby-Datenbank als Metastore geliefert.
  • Die Derby-Datenbank kann jeweils nur einen aktiven Benutzer unterstützen
  • Derby wird in der Produktionsumgebung nicht empfohlen

Die Lösung hier ist also

  • Verwenden Sie MYSQL als Meta-Speicher im Backend, um mehrere Benutzer gleichzeitig mit Hive zu verbinden
  • MYSQL ist die beste Wahl für den Standalone-Metastore

Schritte zum Installieren und Konfigurieren der MySQL-Datenbank in Hive on Hadoop

Schritt 1) In diesem Schritt führen wir zwei Aufgaben aus

  1. Installation von MySQL-Server
  2. Überprüfung des MySQL-Servers und seines Prozesses
  1. Mit dem Befehl sudo apt-get install mysql-server können wir den MySQL-Server herunterladen

Installieren Sie MySQL wie im Screenshot gezeigt

  1. Nach erfolgreicher Installation am Ende wird MySQL wie im folgenden Screenshot gezeigt ausgeführt

Schritt 2) Installieren von MySQL Java Connector. Dies dient Java-Abhängigkeiten und Verbindungszwecken

Schritt 3) Erstellen eines Softlinks für den Connector im Hive lib-Verzeichnis . Dies ist für eine weiche Verbindung zwischen Java und MySQL.

Schritt 4) Konfigurieren des MySQL-Speichers in Hive

  • Geben Sie MySql -u root -p gefolgt von einem Kennwort ein
  • Hier steht -u für den Root-Benutzernamen, p für das Passwort
  • Nach Eingabe des obigen Befehls muss der Benutzer ein gültiges Passwort eingeben und dann auf die Eingabetaste klicken
  • Dann wechselt es in den MySQL-Shell-Modus

Schritt 5) Erstellen eines Benutzernamens und eines Kennworts für MySQL, Gewähren von Berechtigungen.

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;

Schritt 6) Konfigurieren von hive-site.xml

  • Weisen Sie nach Schritt 5 der MySQL-Datenbank einen Benutzernamen und ein Kennwort zu und erteilen Sie die entsprechenden Berechtigungen.
  • Hier konfigurieren wir einige Eigenschaften in Hive, um eine Verbindung mit der MySQL-Datenbank herzustellen .

Aus dem obigen Screenshot sehen wir Folgendes. Hier definieren wir 4 Eigenschaften, die erforderlich sein könnten, um MYSQL als Meta-Speicher in Hive einzurichten

Diese sind wie folgt:

  1. Diese Eigenschaft dient der Verbindungs-URL. Hier definieren wir ConnectionURL in dieser Eigenschaft. Es fungiert als JDBC-Verbindung und repräsentiert auch den Metastore-Speicherort
  2. Diese Eigenschaft gilt für den Namen des Verbindungstreibers. Hier ist mysql.jdbc.Driver der respektierte Wert, den wir im Wertetag erwähnen müssen
  3. Diese Eigenschaft wird zum Definieren des Verbindungsbenutzernamens verwendet. In diesem haben wir "hiveguru" als Benutzernamen definiert
  4. Diese Eigenschaft wird zum Erwähnen des Verbindungskennworts verwendet. In diesem haben wir das Passwort als Benutzerkennwort definiert.

Sobald die Eigenschaften in hive -site.xml abgelegt sind, müssen wir sie manuell speichern (Strg + S) und die Datei schließen. Nach dem Schließen dieser Datei müssen wir eine Hive-Tabelle erstellen und die Tabellendetails im MySQL-Speicher überprüfen.

Platzieren Sie diesen Code in hive-site.xml

hive-site.xml


javax.jdo.option.ConnectionURLjdbc:mysql://localhost/metastore?createDatabaseIfNotExist=truemetadata is stored in a MySQL server
javax.jdo.option.ConnectionDriverNamecom.mysql.jdbc.DriverMySQL JDBC driver class
javax.jdo.option.ConnectionUserNamehiveuseruser name for connecting to mysql server
javax.jdo.option.ConnectionPasswordhivepasswordpassword for connecting to mysql server

Schritt 7 ) Erstellen Sie die Tabelle "guru99" in Hive.

Aus dem obigen Screenshot können wir Folgendes beobachten

  • Erstellung des Tabellennamens "guru99" mit zwei Spaltennamen
  • Die Spaltennamen, deren Datentyp als Ganzzahl angegeben ist, sind ganzzahlig und ein anderer vom Typ Zeichenfolge

Im nächsten Schritt werden wir prüfen, ob es in MySql gespeichert ist oder nicht

Schritt 8) Aufrufen des MySQL-Shell-Modus

Aus dem obigen Screenshot können wir Folgendes beobachten

  • Zuerst müssen wir die Datenbank als "Metastore verwenden" verwenden.
  • Sobald der Metaspeicher ausgewählt wurde, können wir die darin enthaltenen Tabellen mit dem Befehl "show" tables überprüfen, wie im Screenshot gezeigt
  • Unabhängig von den in Hive erstellten Tabellen entsprechen die Metadaten den Tabellen, die unter TBLS in der MySQL-Datenbank gespeichert sind.
  • "Guur99-Tabelle" wird in Hive erstellt, sodass die entsprechenden Metadaten in MySQL unter TBLS gespeichert werden.

Schritt 9) Überprüfen, ob in der erstellten Tabelle MySQL angezeigt wird oder nicht

Durch Eingabe von select * in TBLS werden die Tabellen angezeigt, die wir im Hive-Shell-Modus erstellt haben

Aus dem obigen Screenshot können wir folgende Dinge beobachten:

  • Der Tabellenname "guru99", der als Hive erstellt wurde, kann im MySQL-Shell-Modus angezeigt werden
  • Darüber hinaus werden Informationen wie die Erstellungszeit der Tabelle, die Zugriffszeit und andere Eigenschaften bereitgestellt, wie im obigen Screenshot gezeigt.