tGlobalVarLoad - 6.3

Composants Talend Guide de référence

EnrichVersion
6.3
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

Fonction

Le composant tGlobalVarLoad définit des variables à l'aide des colonnes de son schéma d'entrée et stocke les données entrantes dans ces variables.

Objectif

Le tGlobalVarLoad configure des variables à l'aide de données entrantes the incoming data so that the data can be dynamically reused by other Subjobs.

Si vous avez souscrit à l'une des solutions Big Data de Talend, ce composant est disponible dans les types de Job suivants :

Le composant tGlobalVarLoad dans des Jobs Map/Reduce Talend

Avertissement

Les informations contenues dans cette section concernent uniquement les utilisateurs ayant souscrit à l'une des solutions Big Data de Talend et ne sont pas applicables aux utilisateurs de Talend Open Studio for Big Data.

Dans un Job Map/Reduce Talend, le tLogRow, ainsi que le Job complet utilisant ce composant, génère du code Map/Reduce natif. Cette section présente les propriétés du tLogRow lorsqu'il est utilisé dans un Job Map/Reduce. Pour plus d'informations concernant un Job Map/Reduce Talend, consultez le Guide de prise en main de Talend Big Data.

Famille du composant

MapReduce/Output

 

Basic settings

Schema et Edit Schema

Un schéma est une description de lignes, il définit le nombre de champs (colonnes) qui sont traités et passés au composant suivant. Le schéma est soit local (Built-In), soit distant dans le Repository.

Les colonnes du schéma sont configurées comme clés de variables et les données dans ces colonnes sont les valeurs des variables.

  

Built-In : Le schéma est créé et conservé ponctuellement pour ce composant seulement. Voir également le Guide utilisateur du Studio Talend.

  

Repository : Le schéma existe déjà et il est stocké dans le Repository. Ainsi, il peut être réutilisé. Voir également le Guide utilisateur du Studio Talend.

  

Cliquez sur Edit schema pour modifier le schéma. Si le schéma est en mode Repository, trois options sont disponibles :

  • View schema : sélectionnez cette option afin de voir le schéma.

  • Change to Built-In property : sélectionnez cette option pour passer le schéma en mode Built-In et effectuer des modifications locales.

  • Update repository connection : sélectionnez cette option afin de modifier le schéma stocké dans le référentiel et décider de propager ou non les modifications à tous les Jobs. Si vous souhaitez propager les modifications uniquement au Job courant, cliquez sur No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre [Repository Content].

Global Variables

ERROR_MESSAGE : message d'erreur généré par le composant lorsqu'une erreur survient. Cette variable est une variable After et retourne une chaîne de caractères. Cette variable fonctionne uniquement si la case Die on error est décochée, si le composant a cette option.

Une variable Flow fonctionne durant l'exécution d'un composant. Une variable After fonctionne après l'exécution d'un composant.

Pour renseigner un champ ou une expression à l'aide d'une variable, appuyez sur les touches Ctrl+Espace pour accéder à la liste des variables. A partir de cette liste, vous pouvez choisir la variable que vous souhaitez utiliser.

Pour plus d'informations concernant les variables, consultez le Guide utilisateur du Studio Talend.

Utilisation

Ce composant est généralement utilisé à la fin d'un processus. Il génère des variables que d'autres sous-jobs au sein du Job peuvent réutiliser en appelant la méthode globalMap.get().

Limitation

n/a

Scénario : Sélectionner les enregistrements des salaires supérieurs à la moyenne à l'aide d'un Job Map/Reduce

Ce scénario présente un Job à six composants, créé pour calculer le salaire moyen d'un ensemble de données d'exemple et sélectionner les salaires supérieurs à la moyenne.

Les données d'exemple à utiliser sont déjà stockées dans le système HDFS à utiliser et se présentent comme suit :

1	Lyndon	1200	
2	Ronald	3500	
3	Ulysses	5000	
4	Harry	2000	
5	Garfield	1800	
6	James	3300	
7	Chester	4200	
8	Dwight	2200	
9	Jimmy	2800	
10	Herbert	3500

Le séparateur utilisé pour séparer les champs est /t et les trois colonnes des données d'exemple sont id, name et salary.

Vous pouvez utiliser le composant tHDFSOutput pour écrire les données d'exemple dans le système HDFS à utiliser. Pour plus d'informations, consultez tHDFSOutput.

Relier les composants

  1. Dans la perspective Integration du Studio, créez un Job Map/Reduce vide à partir du nœud Job Designs dans la vue Repository.

    Pour plus d'informations concernant la création d'un Job Map/Reduce, consultez le Guide de prise en main de Talend Big Data.

  2. Dans l'espace de modélisation graphique, saisissez le nom du composant à utiliser et sélectionnez ce composant dans la liste. Dans ce scénario, les composants sont un tAggregateRow, un tGlobalVarLoad, un tMap, un tLogRow et deux tHDFSInput (nommés customer dans ce scénario).

  3. Reliez l'un des tHDFSInput au tAggregateRow à l'aide d'un lien Row > Main. Reliez de la même manière le tAggregateRow au tGlobalVarLoad.

    Ce sous-job est utilisé pour calculer le salaire moyen et configurer cette moyenne comme variable réutilisable.

  4. Connectez le même tHDFSInput à l'autre tHDFSInput à l'aide d'un lien Trigger > On Subjob Ok.

  5. Reliez le second tHDFSInput au tMapà l'aide d'un lien Row > Main, puis répétez l'opération pour connecter le tMap au tLogRow. Dans la boîte de dialogue qui s'ouvre, renommez le lien que vous souhaitez utiliser.

    Ce sous-job est utilisé pour sélectionner les salaires supérieurs à la moyenne.

Configurer une connexion Hadoop

  1. Cliquez sur Run afin d'ouvrir la vue correspondante et cliquez sur l'onglet Hadoop Configuration afin d'afficher cette vue et configurer la connexion Hadoop pour ce Job.

  2. Dans la liste Property type, sélectionnez Built-in. Si vous avez créé une connexion afin qu'elle soit utilisable depuis le Repository, sélectionnez alors Repository afin que le Studio Talend réutilise les informations de connexion pour ce Job.

    Pour plus d'informations concernant la création d'une connexion Hadoop dans le Repository, consultez le chapitre décrivant le nœud Hadoop cluster du le Guide utilisateur du Studio Talend.

  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 Talend.

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

    En plus de l'évolution de Hadoop, veuillez noter les changements suivants :

    • Si vous utilisez Hortonworks Data Platform V2.2, les fichiers de configuration de votre cluster peuvent utiliser des variables d'environnement comme ${hdp.version}. Si vous êtes dans cette situation, vous devez configurer la propriété mapreduce.application.framework.path dans la table Hadoop properties, avec la valeur du chemin d'accès pointant explicitement vers l'archive du framework MapReduce de votre cluster. Par exemple :

      mapreduce.application.framework.path=/hdp/apps/2.2.0.0-2041/mapreduce/mapreduce.tar.gz#mr-framework
    • Si vous utilisez Hortonworks Data Platform V2.0.0, le type de système d'exploitation utilisé pour la distribution Hadoop et pour le Job Talend doit être identique, par exemple Windows ou Linux. Sinon, vous devez utiliser le Jobserver de Talend afin d'exécuter un Job dans le même type de système d'exploitation que celui dans lequel la distribution Hortonworks Data Platform V2.0.0 utilisée est exécutée. Pour plus d'informations concernant le Jobserver de Talend, consultez le Guide d'installation Talend.

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

    Si vous utilisez une distribution MapR, vous pouvez simplement laisser maprfs:/// dans ce champ. Le client MapR se charge de créer la connexion au moment de l'exécution. Notez que le client doit être correctement installé. Pour plus d'informations concernant la configuration d'un client MapR, consultez la page suivante sur le site de la documentation de MapR : http://doc.mapr.com/display/MapR/Setting+Up+the+Client (en anglais).

  5. Dans le champ Job tracker, saisissez l'emplacement du JobTracker de votre distribution. Par exemple, tal-qa114.talend.lan:8050.

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

    Si vous utilisez YARN dans votre cluster Hadoop, comme Hortonworks Data Platform V2.0.0 ou Cloudera CDH4.3 + (mode YARN), vous devez spécifier l'emplacement du Resource Manager et non celui du Jobtracker. Vous pouvez continuer à configurer les paramètres suivants selon la configuration du cluster Hadoop à utiliser :

    • Cochez la case Set resourcemanager scheduler address et saisissez l'adresse de l'ordonnanceur (Scheduler) dans le champ qui apparaît.

    • Cochez la case Set jobhistory address et saisissez l'emplacement du serveur JobHistory du cluster Hadoop à utiliser. Cela permet de stocker les informations relatives aux métriques du Job courant sur le serveur JobHistory.

    • Cochez la case Set staging directory et saisissez le chemin d'accès au répertoire défini dans votre cluster Hadoop pour les fichiers temporaires créés par l'exécution de programmes. Ce répertoire se trouve sous la propriété yarn.app.mapreduce.am.staging-dir dans les fichiers de configuration, notamment les fichiers yarn-site.xml et mapred-site.xml de votre distribution.

    • Cochez la case Use datanode hostname pour permettre au Job d'accéder aux nœuds de données via leurs hébergeurs. Cela configure la propriété dfs.client.use.datanode.hostname à true. Lorsque vous vous connectez à un système de fichiers S3N, vous devez cocher cette case.

  6. Si vous accédez au cluster Hadoop fonctionnant avec la sécurité de Kerberos, cochez cette case, puis saisissez le "principal name" de Kerberos pour le NameNode dans le champ affiché. Cela vous permet d'utiliser votre identifiant pour vous authentifier, en le comparant aux identifiants stockés dans Kerberos.

    • Si ce cluster est un cluster MapR de version 4.0.1 ou postérieure, vous pouvez paramétrer la configuration de l'authentification par ticket MapR en plus ou comme une alternative en suivant les explications dans Connexion sécurisée à MapR.

      Gardez à l'esprit que cette configuration génère un nouveau ticket de sécurité MapR pour le nom d'utilisateur défini dans le Job dans chaque exécution. Si vous devez réutiliser un ticket existant provenant du même utilisateur, laissez décochées les cases Force MapR ticket authentication et Use Kerberos authentication. MapR devrait pouvoir trouver automatiquement ce ticket à la volée.

    De plus, comme ce composant effectue des calculs Map/Reduce, vous devez également authentifier les services associés, comme le serveur de l'historique des Jobs et le gestionnaire de ressources ou le JobTracker, selon votre distribution, dans le champ correspondant. Ces principaux se trouvent dans les fichiers de configuration de votre distribution. Par exemple, dans une distribution CDH4, le principal du gestionnaire de ressource est configuré dans le fichier yarn-site.xml et le principal de l'historique des Job dans le fichier mapred-site.xml.

    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 le champ User name, saisissez votre nom d'utilisateur pour votre distribution. Si vous laissez ce champ vierge, le nom d'utilisateur de la machine hébergeant le Studio Talend est utilisé.

  8. Dans le champ Temp folder, saisissez le chemin d'accès au dossier HDFS dans lequel sont stockés les fichiers temporaires générés pendant les opérations de Map/Reduce.

  9. Laissez le champ Path separator in server tel quel, sauf si vous changez le séparateur utilisé par la machine hôte de votre distribution Hadoop pour sa variable PATH. En d'autres termes, changez le séparateur si celui-ci n'est pas le signe deux points (:). Dans ce cas, vous devez remplacer cette valeur par celle utilisée dans votre hôte.

  10. Laissez la case Clear temporary folder (Effacer le contenu du dossier temporaire) cochée, sauf si vous souhaitez garder ces fichiers temporaires.

  11. Laissez la case Compress intermediate map output to reduce network traffic cochée, afin de réduire le temps de transfert des partitions du Mapper aux différents Reducers.

    Cependant, si le transfert des données dans le Job est négligeable, il est recommandé de décocher cette case afin de désactiver l'étape de compression, car la compression consomme des ressources supplémentaires du CPU.

  12. Si vous souhaitez utiliser des propriétés Hadoop personnalisées, renseignez la table Hadoop properties avec la ou les propriété(s) à personnaliser. Lors de l'exécution, ces modifications écrasent les propriétés correspondantes par défaut utilisées par le Studio pour son moteur Hadoop.

    Pour plus d'informations concernant les propriétés requises par Hadoop, consultez la documentation Apache Hadoop sur le site http://hadoop.apache.org (en anglais), ou la documentation de la distribution Hadoop que vous utilisez.

  13. Si le chiffrement transparent HDFS est activé dans votre cluster, cochez la case Setup HDFS encryption configurations et, dans le champ HDFS encryption key provider qui s'affiche, saisissez l'emplacement du proxy KMS.

    Pour plus d'informations concernant le chiffrement transparent HDFS et son proxy KMS, consultez Transparent Encryption in HDFS (en anglais).

    Si le système Hadoop utilisé est Hortonworks Data Platform V1.2 ou Hortonworks Data Platform V1.3, vous devez définir des allocations de mémoire suffisantes pour que les opérations de map et reduce soient effectuées par le système Hadoop.

    Dans ce cas, vous devez saisir les valeurs que vous souhaitez utiliser pour la mémoire allouée aux opérations map et reduce dans les champs Mapred job map memory mb et Mapred job reduce memory mb, respectivement. Par défaut, les valeurs sont toutes les deux 1000, ce qui est normalement adapté pour l'exécution de ces opérations.

    Si la distribution utilisée est YARN, les paramètres de mémoire à définir sont alors Map (in Mb), Reduce (in Mb) et ApplicationMaster (in Mb), respectivement. Ces champs permettent d'allouer dynamiquement de la mémoire aux opérations map et reduce et à l'ApplicationMaster de YARN.

  14. Si vous utilisez Cloudera V5.5 ou une version supérieure, vous pouvez cocher la case Use Cloudera Navigator pour permettre au Cloudera Navigator de votre distribution de suivre le lignage de vos Jobs jusqu'au niveau des composants, notamment les modifications des schémas entre les composants.

    Lorsque cette option est activée, vous devez configurer les paramètres suivants :

    • Username et Password : informations d'authentification utilisées pour vous connecter à votre Cloudera Navigator.

    • Cloudera Navigator URL : saisissez l'emplacement du Cloudera Navigator auquel se connecter.

    • Cloudera Navigator Metadata URL : saisissez l'emplacement où sont stockées les métadonnées (Navigator Metadata).

    • Activate the autocommit option : cochez cette case pour que le Cloudera Navigator génère le lignage du Job courant à la fin de son exécution.

      Comme cette option force le Cloudera Navigator à générer des lignages de toutes ses entités disponibles, tels que les fichiers et répertoires HDFS, les requêtes Hive ou les scripts Pig, il n'est pas recommandé de l'utiliser dans un environnement de production, car elle ralentit le Job.

    • Kill the job if Cloudera Navigator fails : cochez cette case pour arrêter l'exécution du Job lorsque la connexion à Cloudera Navigator échoue.

      Sinon, laissez cette case décochée pour que votre Job continue à s'exécuter.

    • Disable SSL validation : cochez cette case pour que votre Job se connecte au Cloudera Navigator sans processus de validation SSL.

      Cette fonctionnalité est conçue pour simplifier les tests de vos Jobs mais il n'est pas recommandé de l'utiliser dans un cluster en production.

  15. Si vous utilisez Hortonworks Data Platform V2.4.0 ou supérieure et que vous avez installé Atlas dans votre cluster, vous pouvez cocher la case Use Atlas, afin de permettre le lignage du Job au niveau des composants, notamment les modifications de schéma entre les composants.

    Lorsque cette option est activée, vous devez configurer les paramètres suivants :

    • Atlas URL : saisissez l'emplacement d'Atlas auquel se connecter. C'est généralement http://nom_de_votre_noeud_atlas:port

    • Die on error: cochez cette case pour arrêter l'exécution du Job lorsque des problèmes relatifs à Atlas surviennent, par exemple des problèmes de connexion à Atlas.

      Sinon, laissez cette case décochée pour que votre Job continue à s'exécuter.

    Dans les champs Username et Password, saisissez respectivement l'identifiant et le mot de passe d'authentification pour accéder à Atlas.

Pour plus d'informations sur le Resource Manager, son ordonnanceur et l'ApplicationMaster, consultez la documentation de YARN sur le site http://hortonworks.com/blog/apache-hadoop-yarn-concepts-and-applications/ (en anglais).

Pour plus d'informations concernant la définition des paramètres de mémoire pour YARN et MapReduce, consultez la documentation de la distribution utilisée comme, par exemple, celle d'Hortonworks : http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.6.0/bk_installing_manually_book/content/rpm-chap1-11.html (en anglais).

Lire les données d'exemple dans le Job

  1. Double-cliquez sur l'un des deux composants tHDFSInput pour afficher sa vue Basic settings.

    Les deux tHDFSInput sont utilisés pour lire la même source de données et sont configurés de la même manière. Configurez-les comme décrit dans la procédure décrite dans cette section.

  2. Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir l'éditeur du schéma.

  3. Cliquez trois fois sur le bouton [+] pour ajouter trois lignes et, dans la colonne Column, renommez les respectivement id, name et salary.

  4. Dans la colonne Type de la ligne salary, sélectionnez Double.

  5. Cliquez sur OK pour valider ces modifications et acceptez la propagation proposée par la boîte de dialogue.

  6. Dans le champ Folder/File, parcourez votre système jusqu'aux données d'exemple à traiter dans le système HDFS.

  7. Dans la zone File type, sélectionnez Text file dans la liste Type.

  8. Dans le champ Field separator, saisissez \t.

Calculer la moyenne

  1. Double-cliquez sur le tAggregateRow pour ouvrir sa vue Component.

  2. Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir l'éditeur du schéma.

  3. Dans le schéma du tAggregateRow, cliquez sur le bouton [+] pour ajouter une ligne et, dans la colonne Column, renommez-la avg.

  4. Dans la colonne Type de la ligne salary, sélectionnez Double.

  5. Cliquez sur OK afin de valider les modifications et acceptez la propagation proposée par la boîte de dialogue.

  6. Sous la table Operations, cliquez sur le bouton [+] pour ajouter une ligne et configurez les colonnes suivantes de la ligne afin de définir le calcul d'un salaire moyen.

    • Output column : sélectionnez la colonne du schéma de sortie dans laquelle le salaire moyen est stocké. Dans ce scénario, sélectionnez avg.

    • Function : sélectionnez la fonction avg pour calculer la moyenne.

    • Input column position : sélectionnez la colonne du schéma d'entrée utilisée pour fournir les données source du calcul.

Configurer la variable avg

  1. Double-cliquez sur le tGlobalVarLoad pour ouvrir sa vue Component.

  2. Cliquez sur le bouton Sync columns pour assurer que le composant récupère la colonne avg du schéma du tAggregateRow. Ainsi, le tGlobalVarLoad définit la variable avg à l'aide du salaire moyen calculé.

Filtrer les enregistrements des salaires

  1. Double-cliquez sur le tMap pour ouvrir l'éditeur de mapping.

    Notez que le composant tHDFSInput lié au tMap a été configuré avec le premier tHDFSInput lié au tAggregateRow.

  2. Dans la table représentant le flux d'entrée (à gauche), sélectionnez les trois colonnes et déposez-les dans la table représentant le flux de sortie (à droite).

  3. Dans la table du flux d'entrée, cliquez sur le bouton pour afficher le panneau de filtre.

  4. Dans le champ de filtre, saisissez :

    row5.salary > Double.valueOf(String.valueOf(globalMap.get("avg"))) 

    Cette expression permet au tMap de sélectionner uniquement les salaires supérieurs à la moyenne calculée par le tAggregateRow.

    Notez que row5 dans l'expression de filtre est le nom du lien vers le tMap et peut donc avoir un nom différent dans votre scénario.

  5. Cliquez sur Apply puis sur OK pour valider ces modifications.

Exécuter le Job

Vous pouvez exécuter votre Job.

Le composant tLogRow est utilisé pour présenter les résultats d'exécution du Job.

  1. Si vous souhaitez configurer le mode d'affichage des résultats dans la console, double-cliquez sur le tLogRow pour ouvrir sa vue Component et, dans la zone Mode, sélectionnez l'option Table (print values in cells of a table).

  2. Appuyez sur F6 pour exécuter le Job.

Cela fait, la vue Run s'ouvre automatiquement. Vous pouvez regarder les résultats d'exécution.

Comme présenté au début de ce scénario, le salaire moyen dans les données d'exemple est de 2950. Vous pouvez voir que les enregistrements des salaires supérieurs à la moyenne ont été filtrés des données d'exemples.