Scénario : Fusionner deux ensembles de données dans HDFS - 6.1

Composants Talend Guide de référence

EnrichVersion
6.1
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Ce scénario montre comment utiliser le tSqoopMerge pour fusionner deux ensembles de données sont importés de manière séquentielle dans HDFS, à partir de la même table MySQL, mais dont un enregistrement a été modifié.

Le premier ensemble de données utilisé (celui avant les modifications) se présente comme suit :

id,wage,mod_date
0,2000,2008-06-26 04:25:59
1,2300,2011-06-12 05:29:45
2,2500,2007-01-15 11:59:13
3,3000,2010-05-02 15:34:05
			

Le chemin vers cet ensemble de données dans HDFS est /user/ychen/target_old.

Le second ensemble de données utilisé (celui après les modifications) se présente comme suit :

id,wage,mod_date
0,2000,2008-06-26 04:25:59
1,2300,2011-06-12 05:29:45
2,2500,2007-01-15 11:59:13
3,4000,2013-10-14 18:00:00
			

Le chemin vers cet ensemble de données dans HDFS est /user/ychen/target_new.

Ces ensembles de données sont tous les deux importés à l'aide du composant tSqoopImport. Pour un scénario montrant comment utiliser le tSqoopImport, consultez Scénario : Importer une table MySQL dans HDFS.

Le Job décrit dans ce scénario fusionne deux ensembles de données. Les nouveaux enregistrements écrasent les anciens.

Avant de commencer à reproduire ce scénario, vérifiez que vous disposez des droits et permissions nécessaires pour accéder à la distribution Hadoop utilisée. Ensuite, procédez comme suit :

Déposer le composant

  1. Dans la perspective Integration du Studio, créez un Job vierge depuis le nœud Job Designs du Repository.

    Pour plus d'informations sur la création d'un Job, consultez le Guide utilisateur du Studio Talend.

  2. Déposez un tSqoopMerge dans l'espace de modélisation graphique.

    Dans ce scénario, le fichier .jar nécessaire pour la fusion n'est pas disponible. Vous devez donc utiliser un tSqoopMerge afin de la générer à l'exécution à partir de la table MySQL source.

    Pour plus d'informations sur le tLibraryLoad, consultez tLibraryLoad.

Configurer le tSqoopMerge

  1. Double-cliquez sur le tSqoopMerge afin d'ouvrir sa vue Component.

  2. Dans la zone Mode, sélectionnez Use Java API.

  3. Dans la zone Version, sélectionnez la distribution Hadoop à utiliser et sa version. Si vous ne trouvez pas la distribution correspondant à la votre dans la liste, sélectionnez Custom afin de vous connecter à une distribution Hadoop non officiellement supportée par le Studio.

    Pour un exemple d'utilisation étape par étape de cette option Custom, consultez Connexion à une distribution Hadoop personnalisée.

  4. Dans le champ NameNode URI, saisissez l'emplacement du nœud maître, le NameNode, de la distribution utilisée. Par exemple, hdfs://talend-cdh4-namenode:8020.

  5. Dans le champ JobTracker Host, saisissez l'emplacement du JobTracker de votre distribution. Par exemple, talend-cdh4-namenode:8021.

    Notez que le mot "Job" dans le terme JobTracker désigne les Jobs MR ou Map/Reduce décrits dans la documentation d'Apache disponible sur le site Internet d'Apache : http://hadoop.apache.org/ (en anglais).

  6. Si la distribution utilisée nécessite une authentification Kerberos, cochez la case Use Kerberos authentication et saisissez les informations de connexion. Sinon, laissez cette case décochée.

    Si vous souhaitez utiliser un fichier Kerberos keytab pour vous identifier, cochez la case Use a keytab to authenticate. Un fichier keytab contient des paires de principaux et clés cryptées Kerberos. Vous devez saisir le principal à utiliser dans le champ Principal et le chemin d'accès au fichier keytab dans le champ Keytab.

    Notez que l'utilisateur qui exécute un Job utilisant un keytab n'est pas forcément celui désigné par le principal mais qu'il doit avoir le droit de lecture pour le fichier keytab utilisé. Par exemple, le nom d'utilisateur que vous utilisez pour exécuter le Job est user1 et le principal à utiliser est guest. Dans cette situation, assurez-vous que user1 a les droits de lecture pour le fichier keytab à utiliser.

  7. Dans les champs Old data directory et New data directory, saisissez le chemin ou parcourez votre système de fichiers vers le dossier contenant respectivement l'ancien et le nouvel ensemble de données dans HDFS.

  8. Dans le champ Target directory, saisissez le chemin ou parcourez votre système de fichiers vers le dossier contenant les données fusionnées.

  9. Dans le champ Merge key, saisissez le nom de la colonne utilisée en tant que clé pour la fusion. Dans ce scénario, cette colonne est id.

  10. Cochez la case Need to generate the JAR file afin d'afficher les paramètres de connexion de la table de base de données source.

  11. Dans le champ Connection, saisissez l'URI de la base de données MySQL contenant la table source. Par exemple, jdbc:mysql://10.42.10.13/mysql.

  12. Dans le champ Table Name, saisissez le nom de la table source, sqoopmerge dans ce scénario.

  13. Dans les champs Username et Password, saisissez les informations d'authentification.

  14. Sous la table Driver JAR, cliquez sur le bouton [+] pour afficher la liste déroulante et sélectionner le fichier Jar à utiliser. Dans ce scénario, sélectionnez mysql-connector-java-5.1.30-bin.jar.

    Si le bouton [...] n'est pas disponible, cliquez dans la ligne pour le faire apparaître.

  15. Si le séparateur de champs de la table source n'est pas la virgule (,), vous devez le définir dans la table Additional Arguments de la vue Advanced settings. L'argument utilisé est codegen.output.delimiters.field pour le mode Use Java API ou --fields-terminated-by pour le mode Use Commandline.

Exécuter le Job

Appuyez sur F6 pour exécuter ce Job.

Pendant l'exécution, le fichier .jar et la classe pour la fusion sont générés sur la machine locale.

Une fois l'exécution terminée, vous pouvez vérifier les résultats, dans le dossier cible défini, dans la console Web de la distribution Hadoop utilisée.

Si vous souhaitez obtenir plus de détails sur le Job, il est recommandé d'utiliser la console Web du Jobtracker fournie par la distribution Hadoop utilisée.

Si vous continuez à importer des ensembles de données dans HDFS à partir de la même table source, vous pouvez réutiliser la classe de fusion (merge) générée pour fusionner des ensembles de données.