Centraliser des métadonnées Hive

Talend Real-time Big Data Platform Studio Guide utilisateur

EnrichVersion
6.4
EnrichProdName
Talend Real-Time Big Data Platform
task
Qualité et préparation de données
Création et développement
EnrichPlatform
Studio Talend

Si vous avez souvent besoin d'utiliser une table de base de données provenant de Hive, vous pouvez centraliser les informations de connexion à la base de données Hive et les détails du schéma de la table dans le dossier Metadata du Repository.

Bien que vous puissiez toujours le faire à partir du mode DB connection, l'utilisation du nœud Hadoop cluster est une alternative qui permet une meilleure utilisation des propriétés de connexion centralisées pour une distribution Hadoop donnée.

Prérequis :

  • Lancez la distribution Hadoop que vous souhaitez utiliser et assurez-vous que vous disposez des permissions d'accès nécessaires pour cette distribution et sa base de données Hive.

  • Créez la connexion vers cette distribution Hadoop depuis le nœud Hadoop cluster. Pour plus d'informations, consultez Centraliser une connexion Hadoop.

Si vous souhaitez utiliser une distribution MapR et une version Hive MapR 2.0.0 ou MapR 2.1.2, procédez comme suit avant de configurer la connexion à Hive :

  1. Ajoutez le chemin du client MapR vers le fichier .ini du Studio Talend, par exemple Talend-Studio-win-x86_64.ini. Ce chemin peut varier selon votre système d'exploitation : pour Windows, le chemin est -Djava.library.path=maprclientpath\lib\native\Windows_7-amd64-64).

  2. Pour MapR 2.0.0, installez le module maprfs-0.1.jar.

    Pour MapR 2.1.2, installez les modules maprfs-0.20.2-2.1.2.jar et maprfs-jni-0.20.2-2.1.2.jar.

  3. Redémarrez votre studio pour valider vos changements.

Pour plus d'informations sur l'installation de modules, consultez la description sur l'identification et l'installation de modules externes dans le Guide d'installation Talend.

Créer une connexion à Hive

  1. Développez le nœud Hadoop cluster situé sous le nœud Metadata dans la vue Repository. Cliquez-droit sur la connexion Hadoop à utiliser et sélectionnez Create Hive dans le menu contextuel.

  2. Dans l'assistant de connexion qui s'ouvre, renseignez les propriétés génériques de la connexion que vous devez créer, notamment le nom (champ Name), l'objectif (champ Purpose) et la Description. Le champ Status est un champ que vous pouvez personnaliser dans la fenêtre [File] > [Edit project properties].

  3. Cliquez sur Next pour passer à l'étape suivante et renseigner les informations de connexion à la base de données Hive. Parmi ces informations, les champs DB Type, Hadoop cluster, Distribution, Version, Server, NameNode URL et JobTracker URL sont automatiquement renseignés avec les propriétés héritées de la connexion Hadoop que vous avez sélectionnée dans les étapes précédentes.

    Notez que si vous choisissez None dans la liste Hadoop cluster, vous basculez dans un mode manuel dans lequel les données héritées sont abandonnées. Vous devez donc configurer chaque propriété vous-même. La connexion créée apparaît sous le nœud Db connection uniquement.

    Les propriétés à définir peuvent varier suivant la distribution Hadoop utilisée.

  4. Dans la zone Version info, sélectionnez le modèle de la base de données de Hive auquel vous souhaitez vous connecter. Pour certaines distributions Hadoop, les deux modèles Standard et Embedded sont disponibles à l'utilisation. Pour d'autres, vous pouvez accéder uniquement au modèle Standard ou Embedded.

    Selon la distribution sélectionnée, vous pouvez sélectionner Hive Server2 dans la liste Hive Server version, supportant mieux les connexions simultanées de différents clients que Hive Server1. Pour plus d'informations concernant Hive Server2, consultez la page https://cwiki.apache.org/confluence/display/Hive/Setting+up+HiveServer2 (en anglais).

  5. Les champs affichés varient selon le modèle sélectionné.

    Lorsque vous laissez le champ Database vide, la sélection du modèle Embedded permet au Studio de se connecter automatiquement à toutes les bases de données existantes dans Hive. A l'inverse, la sélection du modèle Standalone permet de se connecter uniquement à la base de données default de Hive.

    A part la propriété Server qui est déjà pré-remplie avec une valeur héritée, vous devez renseigner les propriétés restantes requises par cette connexion Hive.

  6. Si vous accédez à une distribution de Hadoop fonctionnant avec la sécurité Kerberos, cochez la case Use Kerberos authentication. Renseignez les champs selon les configurations du serveur Hive :

    • Saisissez le nom du Principal Kerberos dans le champ Hive principal,

    • Saisissez l'URL de la base de données du Metastore dans le champ Metastore URL,

    • Cliquez sur le bouton [...] à côté du champ Driver jar et parcourez votre système jusqu'au fichier Jar du pilote de la base de données du Metastore,

    • Cliquez sur le bouton [...] à côté du champ Driver class et sélectionnez la classe, puis

    • Saisissez votre identifiant et votre mot de passe dans les champs Username et Password respectivement.

    Si vous devez utiliser un fichier Keytab pour vous connecter, cochez la case Use a keytab to authenticate, saisissez le Principal à utiliser, dans le champ Principal, puis, dans le champ Keytab, parcourez votre système jusqu'au fichier Keytab à utiliser.

    Un fichier Keytab contient des paires de Principaux et de clés cryptées Kerberos. Notez que l'utilisateur exécutant un Job contenant un Keytab n'est pas nécessairement celui désigné par le Principal mais doit posséder les droits de lire le fichier Keytab utilisé. Par exemple, l'identifiant utilisé pour exécuter un Job est user1 et le Principal est guest. Dans ce cas, assurez-vous que l'utilisateur user1 possède le droit de lire le fichier Keytab à utiliser.

  7. Si vous utilisez l'une des distributions suivantes, sélectionnez Tez comme framework de vos Jobs dans la liste Execution engine.

    • Hortonworks : V2.1 et V2.2.

    • MapR : V4.0.1.

    • Custom : cette option vous permet de vous connecter à une distribution supportant Tez mais non officiellement supportée par Talend.

    Lorsque vous réutilisez cette connexion dans un composant Hive, vous devez configurer l'accès aux bibliothèques de Tez via la vue Advanced settings du composant.

  8. Si vous devez utiliser une configuration personnalisée pour la distribution d'Hadoop ou de Hive à utiliser, cliquez sur le bouton [...] à côté du champ Hadoop properties ou Hive Properties, pour ouvrir la table des propriétés correspondante et ajouter une ou des propriété(s) à personnaliser. Lors de l'exécution, les propriétés personnalisées écrasent celles par défaut utilisées par le studio pour son moteur Hadoop.

    Pour plus d'informations concernant les propriétés de Hadoop, consultez la documentation de Apache Hadoop à l'adresse suivante : http://hadoop.apache.org/docs/current/ (en anglais) ou la documentation de la distribution Hadoop que vous utilisez. Par exemple, la page suivante liste certaines des propriétés par défaut de Hadoop : https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml.

    Pour plus d'informations concernant les propriétés de Hive, consultez la documentation de Apache Hive. Par exemple, la page suivante décrit certaines propriétés de configuration de Hive : https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties.

    Pour tirer parti de cette table des propriétés, consultez Configuration des propriétés réutilisables de Hadoop.

  9. Cliquez sur le bouton Check afin de vérifier si votre connexion est établie.

  10. Si besoin, définissez les propriétés de la base de données, dans les champs respectifs de la zone Database Properties.

  11. Cliquez sur Finish pour valider vos changements et fermer l'assistant.

    La nouvelle connexion spécifiée à la base de données Hive s'affiche sous le nœud DB Connections de la vue Repository. Cette connexion contient quatre sous-dossiers parmi lesquels Table schema peut regrouper tous les schémas relatifs à cette connexion.

    Si vous devez utiliser un contexte environnemental pour définir les paramètres de cette connexion, cliquez sur le bouton Export as context pour ouvrir l'assistant correspondant et choisir parmi les options suivantes :

    • Create a new repository context : créer le contexte environnemental depuis la connexion Hadoop courante, c'est-à-dire que les paramètres à configurer dans l'assistant sont pris comme variables de contexte avec les valeurs données à ces paramètres.

    • Reuse an existing repository context : utiliser les variables d'un contexte environnemental afin de configurer la connexion courante.

    Si vous devez annuler l'implémentation du contexte, cliquez sur Revert context. Les valeurs des variables de contexte utilisées sont directement mises dans l'assistant.

    Pour un exemple étape par étape concernant l'utilisation de la fonctionnalité Export as context, consultez Exporter une métadonnée en tant que contexte et réutiliser ses paramètres pour configurer une connexion.

  12. Cliquez-droit sur la connexion Hive que vous avez créée et sélectionnez Retrieve Schema pour extraire tous les schémas de la base de données Hive définie.

Récupérer le schéma d'une table Hive

Avertissement

Si vous travaillez sur un projet géré par SVN ou Git alors que l'option Manual lock est cochée dans Talend Administration Center, assurez-vous de verrouiller manuellement votre connexion dans le Repository avant de récupérer ou de mettre à jour des schémas de table. Sinon, la connexion est en lecture seule et le bouton Finish de l'assistant n'est pas disponible.

Pour plus d'informations concernant le verrouillage et le déverrouillage d'un élément du projet ainsi que les différents types de verrouillage, consultez Travailler sur un projet partagé.

Dans cette étape, vous allez récupérer le schéma de la table de la base de données Hive connectée.

  1. Dans la vue Repository, cliquez-droit sur la connexion Hive utilisée et sélectionnez Retrieve schema dans le menu contextuel. Cliquez ensuite sur Next dans l'assistant qui s'ouvre afin de voir et filtrer les différentes table de cette base de données Hive.

  2. Développez le nœud des tables que vous souhaitez utiliser et sélectionnez les colonnes que vous souhaitez récupérer. Cliquez sur Next pour ouvrir une nouvelle vue dans l'assistant, listant le(s) schéma(s) de la table sélectionnée. Vous pouvez sélectionner n'importe quel schéma pour afficher ses détails dans la zone Schema, du côté droit de l'assistant.

    Avertissement

    Si la table de la base de données source contient une valeur par défaut étant une fonction ou une expression et non une chaîne de caractères, assurez-vous de supprimer les guillemets simples entourant la valeur par défaut du schéma final, s'il y en a, afin d'éviter des résultats inattendus lors de la création de tables de bases de données à l'aide de ce schéma.

  3. Modifiez le schéma, si nécessaire. Vous pouvez renommer le schéma et personnaliser sa structure selon vos besoins, dans la zone Schema.

    La barre d'outils vous permet d'ajouter, supprimer ou déplacer des colonnes dans votre schéma.

    Pour écraser les modifications effectuées sur le schéma sélectionné avec le schéma par défaut, cliquez sur Retrieve schema. Notez que toutes les modifications apportées au schéma seront perdues si vous cliquez sur ce bouton.

  4. Cliquez sur Finish pour terminer la récupération du schéma de la table Hive. Tous les schémas récupérés sont affichés sous le nœud Hive correspondant dans la vue Repository.

    Si vous devez éditer ultérieurement le schéma, cliquez-droit sur le schéma et sélectionnez Edit Schema dans le menu contextuel pour ouvrir à nouveau l'assistant et effectuer vos modifications.

    Avertissement

    Si vous modifiez le schéma, assurez-vous que le Type des données est correctement défini.

Comme expliqué précédemment, en plus d'utiliser le nœud Hadoop cluster, vous pouvez également partir du nœud Db connection afin de créer une connexion Hive et récupérer des schémas. Dans tous les cas, vous devez configurer les propriétés spécifiques de connexion à Hive. A cette étape :

  • si vous sélectionnez l'option Repository dans la liste Hadoop cluster pour réutiliser les détails d'une connexion Hadoop établie, la connexion Hive créée sera classée à la fois sous le nœud Hadoop cluster et le nœud Db connection ;

  • si vous sélectionnez l'option None dans la liste Hadoop cluster afin de renseigner vous-même les propriétés de la connexion Hadoop, la connexion Hive créée apparaît uniquement sous le nœud Db connection.