Configuration du métastore HIVE avec MYSQL

Anonim

Pourquoi utiliser MySQL dans Hive comme métastore:

  • Par défaut, Hive est livré avec une base de données derby comme métastore.
  • La base de données Derby ne peut prendre en charge qu'un seul utilisateur actif à la fois
  • Derby n'est pas recommandé dans un environnement de production

Donc la solution ici est

  • Utilisez MYSQL comme stockage Meta au niveau du backend pour connecter plusieurs utilisateurs avec Hive à la fois
  • MYSQL est le meilleur choix pour le métastore autonome

Étapes pour installer et configurer la base de données MySQL dans Hive sur Hadoop

Étape 1) Dans cette étape, nous allons effectuer deux tâches

  1. Installation de mysql-server
  2. Vérification du serveur mysql et de son processus
  1. En utilisant la commande sudo apt-get install mysql-server, nous pouvons télécharger le serveur mysql

Installez MySQL comme indiqué sur la capture d'écran

  1. Après une installation réussie à la fin, MySQL fonctionnera comme indiqué dans la capture d'écran ci-dessous

Étape 2) Installation du connecteur MySQL Java. Ceci est pour les dépendances java et à des fins de connexion

Étape 3) Création d'un lien logiciel pour le connecteur dans le répertoire Hive lib . Ceci est pour le lien souple entre Java et MySql.

Étape 4) Configuration du stockage MySql dans Hive

  • Tapez MySql -u root -p suivi du mot de passe
  • Ici -u représente le nom d'utilisateur racine, p désigne le mot de passe
  • Après avoir entré la commande ci-dessus, l'utilisateur doit entrer un mot de passe valide, puis cliquer sur Entrée
  • Ensuite, il entrera en mode shell MySql

Étape 5) Création du nom d'utilisateur et du mot de passe pour MySql, octroi de privilèges.

Nous devons exécuter les commandes comme indiqué ci-dessous,

mysql> CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword';mysql> GRANT all on *.* to 'hiveuser'@localhost identified by 'hivepassword';mysql> flush privileges;

Étape 6) Configuration de hive-site.xml

  • Après l'étape 5, attribuez un nom d'utilisateur et un mot de passe à la base de données MySQL et les privilèges donnés.
  • Ici, nous allons configurer certaines propriétés dans Hive pour obtenir une connexion avec la base de données MySQL .

À partir de la capture d'écran ci-dessus, nous observons ce qui suit. Ici, nous définissons 4 propriétés qui pourraient être nécessaires pour établir MYSQL en tant que magasin Meta dans Hive

Ce sont les suivants:

  1. Cette propriété est à des fins d'URL de connexion. Ici, nous définissons ConnectionURL dans cette propriété. Il agit comme une connexion JDBC et représente également l'emplacement du métastore
  2. Cette propriété est pour le nom du pilote de connexion. Ici mysql.jdbc.Driver est la valeur respectée que nous devons mentionner dans la balise value
  3. Cette propriété est utilisée pour définir le nom d'utilisateur de connexion. En cela, nous avons défini "hiveguru" comme nom d'utilisateur
  4. Cette propriété est utilisée pour mentionner le mot de passe de connexion. En cela, nous avons défini le mot de passe comme mot de passe utilisateur.

Une fois les propriétés placées dans la ruche -site.xml, nous devons enregistrer manuellement (Ctrl + S) et fermer le fichier. Après avoir fermé ce fichier, nous devons créer une table Hive et vérifier les détails de la table dans le stockage MySQL.

Placez ce code dans 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

Étape 7) Créez la table "guru99" dans Hive.

À partir de la capture d'écran ci-dessus, nous pouvons observer ce qui suit

  • Création du nom de table "guru99" avec deux noms de colonnes
  • Les noms de colonnes mentionnés avec leur type de données comme l'un est entier et l'autre est de type chaîne

Dans l'étape suivante, nous allons vérifier s'il est stocké dans MySql ou non

Étape 8) Entrée en mode shell MySql

À partir de la capture d'écran ci-dessus, nous pouvons observer ce qui suit

  • Nous devons d'abord utiliser la base de données comme "utiliser le metastore"
  • Une fois qu'il a choisi le meta store, nous pouvons vérifier les tables présentes en utilisant la commande "show" tables comme indiqué dans la capture d'écran
  • Quelles que soient les tables créées dans Hive, les métadonnées correspondent au fait que les tables sont stockées sous TBLS dans la base de données MySQL.
  • La "table Guur99" est créée dans Hive, les métadonnées correspondantes sont donc stockées dans MySQL sous TBLS.

Étape 9) Vérifier si la table créée présente MySQL ou non

En entrant select * from TBLS, il va afficher les tables que nous avons créées en mode shell Hive

À partir de la capture d'écran ci-dessus, nous pouvons observer les choses suivantes:

  • Le nom de la table "guru99" qui a créé la ruche peut être affiché en mode shell MySQL
  • En plus de cela, il fournira également des informations telles que l'heure de création de la table, l'heure d'accès et d'autres propriétés, comme indiqué dans la capture d'écran ci-dessus.