Recherche de site Web

Comment installer et configurer Hive avec la haute disponibilité - Partie 7


Hive est un modèle d’entrepôt de données dans l’écosystème Hadoop. Il peut fonctionner comme un outil ETL au-dessus de Hadoop. L’activation de la haute disponibilité (HA) sur Hive n’est pas similaire à celle des services maîtres tels que Namenode et Resource Manager.

Le basculement automatique ne se produira pas dans Hive (Hiveserver2). En cas d’échec d’un Hiveserver2 (HS2), l’exécution de travaux sur ce HS2 ayant échoué obtiendra un échec. Nous devons soumettre à nouveau le travail afin qu’il puisse s’exécuter sur d’autres HiveServer2. Ainsi, l’activation de HA sur HS2 n’est rien d’autre qu’une augmentation du nombre de composants HS2 dans le cluster.

Dans cet article, nous allons voir les étapes pour installer et activer la Haute Disponibilité de Hive.

Exigences

  • Bonnes pratiques pour le déploiement de Hadoop Server sur CentOS/RHEL 7 – Partie 1
  • Configuration des prérequis Hadoop et du renforcement de la sécurité – Partie 2
  • Comment installer et configurer Cloudera Manager sur CentOS/RHEL 7 – Partie 3
  • Comment installer CDH et configurer les placements de service sur CentOS/RHEL 7 – Partie 4
  • Comment configurer la haute disponibilité pour Namenode - Partie 5
  • Comment configurer la haute disponibilité pour Resource Manager – Partie 6

Commençons...

Installation et configuration de Hive

1. Connectez-vous à Cloudera Manager à l’URL ci-dessous et accédez à Cloudera Manager > Ajouter un service.

http://13.233.129.39:7180/cmf/home

2. Sélectionnez le service 'Hive'.

3. Attribuez les services sur les nœuds.

  • Passerelle – Il s’agit du service client où l’utilisateur peut accéder à la ruche. Habituellement, ce service sera placé dans les nœuds Edge dédiés aux utilisateurs.
  • Hive Metastore – Il s’agit d’un référentiel central pour le stockage des métadonnées Hive.
  • Serveur WebHCat – Il s’agit d’une API Web pour HCatalog et d’autres services Hadoop.
  • Hiveserver2 – Il s’agit d’une interface de clients pour l’exécution de requêtes sur Hive.

Une fois les serveurs sélectionnés, cliquez sur « Continuer » pour continuer.

4. Hive Metastore a besoin d’une base de données sous-jacente pour stocker les métadonnées. Ici, nous utilisons la base de données PostgreSQL par défaut qui est intégrée à CDH.

Les détails de la base de données mentionnés ci-dessous seront saisis automatiquement, la fonction « Tester la connexion » sera ignorée car la base de données mentionnée sera créée à la volée. En temps réel, nous devons créer la base de données dans la base de données externe et tester la connexion pour continuer. Une fois cela fait, veuillez cliquer sur « Continuer ».

5. Configurez le répertoire Hive Warehouse, /user/hive/warehouse est le chemin de répertoire par défaut pour le stockage des tables Hive. Cliquez sur « Continuer ».

6. L’installation de Hive est lancée.

7. Une fois l’installation terminée, vous pouvez obtenir le statut « Terminé ». Cliquez sur « Continuer » pour continuer.

8. L’installation et la configuration de Hive se sont terminées avec succès. Cliquez sur « Terminer » pour terminer la procédure d’installation.

9. Vous pouvez voir le service Hive ajouté dans le cluster via le tableau de bord Cloudera Manager.

10. Vous pouvez afficher le Hiveserver2 dans les instances de Hive. Nous avons ajouté Hiveserver2 dans master1.

Cloudera Manager –> Hive –> instances –> Hiveserver2.

Activation de la haute disponibilité sur Hive

11. Ajoutez ensuite le rôle Hive en accédant à Cloudera Manager –> Hive –> Actions –> Ajouter des instances de rôle.

12. Sélectionnez les serveurs sur lesquels vous souhaitez placer Hiveserver2 supplémentaire. Vous pouvez en ajouter plus de deux, il n’y a pas de limite. Ici, nous en ajoutons un supplémentaire Hiveserver2 dans master2.

13. Une fois le serveur sélectionné, cliquez sur « Continuer ».

14. Un Hiverserver2 sera ajouté dans les instances Hive, vous devez le démarrer en allant dans Cloudera Manager –> Hive –> Instances –> (Sélectionnez Hiveserver2 ajouté récemment) –> Action pour Sélectionné –> Démarrer.

15. Une fois que Hiveserver2 a démarré sur master2, vous obtiendrez le statut « Terminé ». Cliquez sur Fermer.

16. Vous pouvez voir que les deux Hiveserver2 sont en cours d’exécution.

Vérification de la disponibilité de la ruche

Nous pouvons connecter le Hiveserver2 via le beeline qui est un client léger et une ligne de commande. Il utilise le pilote JDBC pour établir la connexion.

17. Connectez-vous au serveur sur lequel Hive Gateway est en cours d’exécution.

[tecmint@master1 ~]$ beeline

18. Entrez la chaîne de connexion JDBC pour connecter le Hiveserver2. Dans ce contexte, la chaîne que nous mentionnons est le Hiverserver2 (master2) avec son numéro de port par défaut 10000. Cette chaîne de connexion ne se connectera qu’au Hiveserver2 qui s’exécute sur master2.

beeline> !connect "jdbc:hive2://master1.linux-console.net:10000"

19. Exécutez un exemple de requête.

0: jdbc:hive2://master1.linux-console.net:10000> show databases;

Il s’agit de la base de données par défaut intégrée.

20. Utilisez la commande ci-dessous pour mettre fin à la session Hive.

0: jdbc:hive2://master1.linux-console.net:10000> !quit

21. Vous pouvez utiliser la même méthode pour connecter Hiveserver2 fonctionnant sur master2.

beeline> !connect "jdbc:hive2://master2.linux-console.net:10000"

23. Nous pouvons connecter le Hiveserver2 en mode Zookeeper Discovery. Dans cette méthode, nous n’avons pas besoin de mentionner le Hiveserver2 dans la chaîne de connexion, mais nous utilisons Zookeeper pour découvrir le Hiveserver2 disponible.

Ici, nous pouvons utiliser un équilibreur de charge tiers pour équilibrer la charge entre les Hiverserver2 disponibles. La configuration ci-dessous est nécessaire pour activer le mode de découverte de Zookeeper en accédant à Cloudera Manager > Hive > Configuration.

24. Ensuite, recherchez la propriété « HiveServer2 Advanced Configuration Snippet » et cliquez sur le symbole + pour ajouter la propriété ci-dessous.

Name : hive.server2.support.dynamic.service.discovery
Value : true
Description : <any description>

25. Une fois entré dans la propriété, cliquez sur « Enregistrer les modifications ».

26. Comme nous avons apporté des modifications à la configuration, vous devez redémarrer les services concernés en cliquant sur le symbole de couleur orange pour redémarrer les services.

27. Cliquez sur « Redémarrer les services obsolètes ».

28. Deux options s’offrent à vous. Si le cluster est en production live, nous devons préférer le redémarrage propagé pour minimiser la panne. Comme nous venons de procéder à l’installation, nous pouvons choisir la deuxième option « Redéployer la configuration du client » et cliquer sur « Redémarrer maintenant ».

29. Une fois le redémarrage terminé, vous obtiendrez le statut « Terminé ». Cliquez sur « Terminer » pour terminer le processus.

30. Nous allons maintenant connecter le Hiveserver2 à l’aide du mode Zookeeper Discovery. Dans la connexion JDBC, la chaîne dont nous avons besoin pour utiliser les serveurs Zookeeper avec son numéro de port 2081. Collectez les serveurs Zookeeper en accédant à Cloudera Manager > Zookeeper > Instances > (notez les noms des serveurs).

Ce sont les trois serveurs ayant Zookeeper, 2181 est le numéro de port.

master1.linux-console.net:2181
master2.linux-console.net:2181
worker1.linux-console.net:2181

31. Maintenant, entrez dans le vif du sujet.

[tecmint@master1 ~]$ beeline

32. Entrez la chaîne de connexion JDBC comme indiqué ci-dessous. Nous devons mentionner le mode de découverte du service et l’espace de noms Zookeeper. 'hiveserver2' est l’espace de noms par défaut de Hiveserver2.

beeline>!connect "jdbc:hive2://master1.linux-console.net:2181,master2.linux-console.net:2181,worker1.linux-console.net:2181/;serviceDiscoveryMode=zookeeper;zookeeperNamespace=hiveserver2"

33. Maintenant, la session est connectée à Hiveserver2 fonctionnant sur master1. Exécutez un exemple de requête pour valider. Utilisez la commande ci-dessous pour créer une base de données.

0: jdbc:hive2://master1.linux-console.net:2181,mast> create database tecmint;

34. Utilisez la commande ci-dessous pour répertorier la base de données.

0: jdbc:hive2://master1.linux-console.net:2181,mast> show databases;

35. Nous allons maintenant valider la haute disponibilité en mode découverte de Zookeeper. Allez dans Cloudera Manager et arrêtez le Hiveserver2 sur master1 que nous avons testé ci-dessus.

Cloudera Manager –> Hive –> Instances –> (sélectionnez Hiveserver2 sur master1) –> Action pour sélectionné –> Arrêter.

36. Cliquez sur « Arrêter ». Une fois arrêté, vous obtiendrez le statut « Terminé ». Vérifiez Hiveserver2 sur master1 en accédant à Hive –> Instances.

37. Entrez dans le vif du sujet et connectez le Hiveserver2 en utilisant la même chaîne de connexion JDBC avec le mode de découverte Zookeeper que nous l’avons fait dans les étapes ci-dessus.

[tecmint@master1 ~]$ beeline

beeline>!connect "jdbc:hive2://master1.linux-console.net:2181,master2.linux-console.net:2181,worker1.linux-console.net:2181/;serviceDiscoveryMode=zookeeper;zookeeperNamespace=hiveserver2"

Vous serez maintenant connecté à Hiveserver2 qui s’exécute sur master2.

38. Validez à l’aide d’un exemple de requête.

0: jdbc:hive2://master1.linux-console.net:2181,mast> show databases;

Conclusion

Dans cet article, nous avons passé en revue les étapes détaillées pour avoir le modèle Hive Data Warehouse dans notre cluster avec haute disponibilité. Dans un environnement de production en temps réel, plus de trois Hiveserver2 seront placés avec le mode Découverte Zookeeper activé.

Ici, tous les Hiveserver2 s’enregistrent auprès de Zookeeper sous un espace de noms commun. Zookeeper découvre dynamiquement le Hiveserver2 disponible et établit la session Hive.

Articles connexes: