tHDFSGet - 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

Avertissement

Ce composant est disponible dans la Palette du Studio Talend si vous avez souscrit à l'une des solutions Big Data de Talend.

Propriétés du tHDFSGet

Famille du composant

Big Data/Hadoop

 

Fonction

Le composant tHDFSGet copie des fichiers d'un système de fichiers distribué Hadoop (HDFS) et les colle dans un répertoire défini par l'utilisateur. Si nécessaire, il renomme ces fichiers.

Objectif

tHDFSGet se connecte au système de fichiers distribués Hadoop, permet d'obtenir de gros fichiers avec une performance optimisée.

Basic settings

Property type

Peut être Built-in ou Repository.

Built-in : Propriétés utilisées ponctuellement.

Repository : Sélectionnez le fichier dans lequel sont stockées les propriétés du composant. Les champs suivants sont alors pré-remplis à l'aide des données collectées.

Depuis la version 5.6, les modes Built-In et Repository sont disponibles dans toutes les solutions de Talend.

Use an existing connection

Cochez cette case et, dans la liste Component List, cliquez sur le composant HDFS de connexion duquel vous souhaitez réutiliser les informations de connexion précédemment définies.

Note

Lorsqu'un Job contient un Job parent et un Job enfant, la liste Component List présente uniquement les composants de connexion du Job du même niveau.

Version

Distribution

Sélectionnez dans la liste le cluster que vous utilisez. Les options de la liste varient selon le composant que vous utilisez. Les options de la liste dépendent des composants que vous utilisez, Parmi ces options, les suivantes nécessitent une configuration spécifique.

  • Si disponible dans la liste de Distribution, l'option Microsoft HD Insight vous permet d'utiliser un cluster Microsoft HD Insight. Dans cette optique, vous devez configurez les connexions aux services WebHCat, HD Insight et Windows Azure Storage du cluster dans les zones affichées. Une vidéo démontrant comment configurer cette connexion est disponible à l'adresse suivante : https://www.youtube.com/watch?v=A3QTT6VsNoM.

  • L'option Custom vous permet de vous connecter à un cluster différente des clusters de la liste, par exemple une distribution non supportée officiellement par Talend.

Pour vous connecter à une distribution personnalisée, une fois l'option Custom sélectionnée, cliquez sur le bouton pour afficher une fenêtre, dans laquelle vous pouvez :

  1. Sélectionner Import from existing version pour importer une distribution de base officiellement supportée et ajouter manuellement les autres Jars requis non fournis par cette distribution. Ou,

  2. Sélectionner Import from zip pour importer le fichier .zip de configuration pour la distribution personnalisée à utiliser. Ce fichier zip doit contenir les bibliothèques des différents éléments Hadoops et le fichier d'index de ces bibliothèques.

    Dans Talend Exchange, des membres de la Communauté Talend ont partagé des fichiers zip de configuration prêts à utiliser, que vous pouvez télécharger depuis cette liste Hadoop configuration et utiliser directement dans votre connexion. Cependant, avec l'évolution en continu des différents projets relatifs à Hadoop, il est possible que vous ne trouviez pas dans la liste le zip de configuration correspondant à votre distribution. Il est alors recommandé d'utiliser l'option Import from existing version, afin de se baser sur une distribution existante pour ajouter les .jars requis par votre distribution.

    Notez que certaines versions personnalisées ne sont pas officiellement supportées par Talend. Talend et sa Communauté fournissent l'opportunité de vous connecter à des versions personnalisées depuis le Studio mais ne peuvent garantir que la configuration de la version choisie sera simple, car de nombreuses versions et distributions d'Hadoop différentes sont disponibles. Il est recommandé de configurer une telle connexion uniquement si vos connaissances relatives à Hadoop sont suffisantes pour réparer les problèmes par vous-même.

    Note

    Dans cette boîte de dialogue, la case de la zone active doit être cochée, afin d'importer les fichiers .jar correspondant à la connexion créée entre la distribution personnalisée et ce composant.

    Pour un exemple étape par étape expliquant comment se connecter à une distribution personnalisée et partager cette connexion, consultez Connexion à une distribution Hadoop personnalisée.

  Hadoop version

Sélectionnez la version de la distribution Hadoop que vous utilisez. Les options disponibles dépendent du composant que vous utilisez. 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 de ce composant, 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.

 Connection

Use kerberos authentication

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.

Cette case est disponible ou indisponible selon la distribution d'Hadoop à laquelle vous vous connectez.

  Use a keytab to authenticate

Cochez la case Use a keytab to authenticate pour vous connecter à un système Hadoop utilisant Kerberos à l'aide d'un fichier keytab. Un fichier keytab contient des paires de principaux Kerberos et de clés cryptées. 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.

Connection

NameNode URI

Saisissez l'URI du NameNode Hadoop. Le NameNode est le nœud maître d'un système Hadoop. Par exemple, si vous avez sélectionné une machine nommée masternode comme NameNode d'une distribution Apache Hadoop, son emplacement est hdfs://masternode:portnumber.

 

User name

Le champ User name est disponible lorsque vous n'utilisez pas Kerberos pour vous authentifier. Dans ce champ, saisissez votre identifiant pour cette distribution. Si vous laissez le champ vide, le nom de la machine hébergeant le Studio sera utilisé.

 

Group

Identifiant de l'utilisateur et nom du groupe sous lesquels les instances HDFS ont été lancées. Ce champ peut être disponible ou indisponible selon la distribution que vous utilisez.

 

HDFS directory

Parcourez votre système ou saisissez le chemin d'accès aux données à utiliser dans le système de fichiers.

 

Local directory

Dossier local où stocker les fichiers obtenus via HDFS.

 

Overwrite file

Option permettant d'écraser ou non les fichiers avec le nouveau fichier.

 

Append

Cochez cette case pour ajouter des nouvelles lignes à la fin du fichier.

 

Include subdirectories

Cochez cette case si la source d'entrée comprend des sous-répertoires.

 

Files

Dans la zone Files, les champs à remplir sont :

- File mask : saisissez le nom du fichier qui sera sélectionné dans HDFS. Vous pouvez utiliser des expressions régulières.

- New name : renommez le fichier obtenu.

 

Die on error

Cette case est cochée par défaut et stoppe le Job en cas d'erreur. Décochez cette case pour terminer le traitement avec les lignes sans erreur, et ignorer les lignes en erreur.

Advanced settings

tStatCatcher Statistics

Cochez cette case pour collecter les données de log au niveau du composant.

 

Hadoop properties

Le Studio Talend utilise une configuration par défaut pour son moteur, afin d'effectuer des opérations dans une distribution Hadoop. Si vous devez utiliser une configuration personnalisée dans une situation spécifique, renseignez dans cette table la ou les propriété(s) à personnaliser. Lors de l'exécution, la ou les propriété(s) personnalisée(s) va (vont) écraser celle(s) par défaut.

  • Notez que, si vous utilisez les métadonnées stockées centralement dans le Repository, cette table hérite automatiquement des propriétés définies dans ces métadonnées et passe en lecture seule jusqu'à ce que, dans la liste Property type, vous passiez de Repository à Built-in.

Pour plus d'informations concernant les propriétés requises par Hadoop et ses systèmes associés, tels que HDFS et Hive, consultez la documentation de la distribution Hadoop utilisée ou consultez la documentation d'Apache Hadoop sur http://hadoop.apache.org/docs en sélectionnant la version de la documentation souhaitée. A titre d'exemple, les liens vers certaines propriétés sont listés ci-après:

Dynamic settings

Cliquez sur le bouton [+] pour ajouter une ligne à la table. Dans le champ Code, saisissez une variable de contexte afin de sélectionner dynamiquement votre connexion HDFS parmi celles prévues dans votre Job. Cette fonctionnalité est utile si vous devez accéder à des fichiers dans différents systèmes HDFS ou dans différentes distributions, en particulier lorsque vous travaillez dans un environnement dans lequel vous ne pouvez pas changer les paramètres de votre Job, par exemple lorsque votre Job doit être déployé et exécuté dans un Studio Talend indépendant.

La table Dynamic settings n'est disponible que si la case Use an existing connection est cochée dans la vue Basic settings. Lorsqu'un paramètre dynamique est configuré, la liste Component List devient inaccessible dans la vue Basic settings.

Pour des exemples sur l'usage des paramètres dynamiques, consultez Scénario 3 : Lire des données dans des bases de données MySQL à l'aide de connexions dynamiques basées sur les variables de contexte et Scénario : Lire des données à partir de différentes bases de données MySQL à l'aide de paramètres de connexion chargés dynamiquement. Pour plus d'informations concernant les Dynamic settings et les variables de contexte, consultez le Guide utilisateur du Studio Talend.

Global Variables

NB_FILE : Indique le nombre de fichiers traités. Cette variable est une variable After et retourne un entier.

CURRENT_STATUS : résultats d'exécution du composant. Cette variable est une variable Flow et retourne une chaîne de caractères.

TRANSFER_MESSAGES : informations transférées du fichier. Cette variable est une variable After et retourne une chaîne de caractères.

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 combine la connexion HDFS et l'extraction de données. Il est utilisé en standalone comme sous-job pour déplacer des données de HDFS vers un répertoire local donné.

A la différence des composants tHDFSInput et tHDFSOutput, il s'exécute en standalone et ne génère pas de flux d'entrée ou de sortie pour les autres composants.

Il est souvent connecté au Job utilisant les liens OnSubjobOk ou OnComponentOk, en fonction du contexte.

Prérequis

La distribution Hadoop doit être correctement installée afin de garantir les interactions avec le Studio Talend. La liste suivante présente des informations d'exemple relatives à MapR.

  • Assurez-vous d'avoir installé le client MapR sur la même machine que le Studio Talend et d'avoir ajouté la bibliothèque client de MapR dans la variable PATH de cette machine. D'après la documentation de MapR, la ou les librairies du client MapR correspondant à chaque OS peuvent être trouvées MAPR_INSTALL\ hadoop\hadoop-VERSION\lib\native. Par exemple, pour Windows, la bibliothèque est lib\MapRClient.dll dans le fichier Jar du client MapR. Pour plus d'informations, consultez la page suivante sur le site de MapR : http://www.mapr.com/blog/basic-notes-on-configuring-eclipse-as-a-hadoop-development-environment-for-mapr (en anglais).

    Si vous n'ajoutez pas de librairie, il est possible que vous rencontriez l'erreur suivante : no MapRClient in java.library.path.

  • Configurez l'argument -Djava.library.path, par exemple, dans la zone Job Run VM arguments de la vue Run/Debug de la boîte de dialogue [Preferences]. Cet argument fournit au studio le chemin d'accès à la bibliothèque native du client MapR. Cela permet aux utilisateurs en souscription d'utiliser entièrement l'aperçu des données (Data viewer) afin de visualiser localement dans le studio les données stockées dans MapR. Pour plus d'informations concernant la configuration de cet argument, consultez la section expliquant comment visualiser les données dans le Guide de prise en main de Talend Big Data.

Pour plus d'informations concernant l'installation d'une distribution Hadoop, consultez le manuel correspondant à la distribution Hadoop que vous utilisez.

Log4j

Si vous utilisez une solution Talend soumise à souscription, l'activité de ce composant peut être journalisée avec la fonctionnalité log4j. Pour plus d'informations sur cette fonctionnalité, consultez le Guide utilisateur du Studio Talend.

Pour plus d'informations sur les niveaux de logs du log4j, consultez la documentation d'Apache : http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html (en anglais).

Limitations

La version 1.6+ de JRE est requise pour exécuter le composant.

Scénario : Traiter des données avec le système de fichiers distribués Hadoop

Le scénario suivant décrit un simple Job qui crée un fichier dans un dossier défini, dans ou en dehors d'HDFS, l'enregistre dans un autre dossier local et le lit à la fin de l'exécution du Job.

Construire le Job

  1. Glissez les composants suivants de la Palette vers l'espace de modélisation : tFixedFlowInput, tFileOutputDelimited, tHDFSPut, tHDFSGet, tFileInputDelimited et tLogRow.

  2. Connectez le tFixedFlowInput au tFileOutputDelimited à l'aide d'un lien Row > Main.

  3. De la même façon, cliquez-droit sur le composant tFileInputDelimited pour le relier au tLogRow, en utilisant le lien Row Main.

  4. A nouveau, cliquez-droit sur le composant tFixedFlowInput pour le relier au composant tHDFSPut en utilisant le lien OnSubjobOk.

  5. Reliez le tHDFSPut au tHDFSGet à l'aide d'un lien OnSubjobOk.

  6. Reliez le composant tHDFSGet au tFileInputDelimited à l'aide d'un lien OnSubjobOk.

Configurer le composant d'entrée

  1. Dans l'espace de modélisation, double-cliquez sur le composant tFixedFlowInput pour définir ses Basic settings.

  2. Dans la liste Schema, sélectionnez Built-In et cliquez sur le bouton [...] situé à côté d'Edit Schema afin d'afficher la structure des données que vous souhaitez créer à partir des variables internes. Dans ce scénario, le schéma contient une colonne : content.

  3. Cliquez sur le bouton [+] pour ajouter une ligne de paramètres.

  4. Cliquez sur OK pour fermer la boîte de dialogue et accepter la propagation des modifications.

  5. Dans l'onglet Basic settings, dans la zone Mode, définissez la valeur de la colonne, en utilisant l'option Use Single Table. Dans ce scénario, la valeur est "Hello world!".

Configurer le composant tFileOutputDelimited

  1. Dans l'espace de modélisation, sélectionnez le composant tFileOutputDelimited et cliquez sur l'onglet Component afin de définir sa configuration de base (Basic settings).

  2. Cliquez sur le bouton [...] situé à côté du champ File Name et parcourez votre répertoire jusqu'au fichier de sortie dans lequel vous souhaitez écrire des données, in.txt dans cet exemple.

Charger les données depuis le fichier local

  1. Dans l'espace de modélisation, sélectionnez le composant tHDFSPut et cliquez sur l'onglet Component pour définir ses Basic settings.

  2. Sélectionnez Apache 0.20.2 dans la liste Hadoop version.

  3. Dans les champs Host, Port, Username et Group, saisissez les informations de connexion à HDFS.

  4. A côté du champ Local directory, cliquez sur le bouton [...] afin de parcourir votre répertoire et sélectionner le fichier à charger dans HDFS. Dans ce scénario, le dossier a été spécifié pendant la configuration du composant tFileOutputDelimited : C:/hadoopfiles/putFile/.

  5. Dans le champ HDFS directory, saisissez l'emplacement défini dans HDFS pour enregistrer le fichier à charger. Dans cet exemple, il s'agit de /testFile.

  6. Cliquez sur le champ Overwrite file pour développer le menu déroulant.

  7. Dans le menu, sélectionnez always (toujours).

  8. Dans la zone Files, cliquez sur le bouton [+] pour ajouter une ligne dans laquelle vous définissez le fichier à charger.

  9. Dans la colonne File mask, saisissez *.txt entre guillemets pour remplacer newLine, et laissez la colonne New name telle quelle. Ceci vous permet d'extraire tous les fichiers .txt dans le dossier spécifié sans modifier leur nom. Dans cet exemple, le fichier est in.txt.

Obtenir les données de HDFS

  1. Dans l'espace de modélisation, sélectionnez le composant tHDFSGet et cliquez sur l'onglet Component pour définir sa configuration de base.

  2. Sélectionnez Apache 0.20.2 dans la liste Hadoop version.

  3. Dans le champ HDFS directory, saisissez l'emplacement de stockage du fichier chargé dans HDFS. Dans cet exemple, il s'agit de /testFile.

  4. A côté du champ Local directory, cliquez sur le bouton [...] pour parcourir jusqu'au dossier spécifié pour l'enregistrement des fichiers extraits d'HDFS. Dans ce scénario, le dossier est : C:/hadoopfiles/getFile/.

  5. Cliquez sur le champ Overwrite file pour développer le menu déroulant.

  6. Dans le menu, sélectionnez always (toujours).

  7. Dans la zone Files, cliquez sur le bouton [+] pour ajouter une ligne dans laquelle vous définissez le fichier à extraire.

  8. Dans la colonne File mask, saisissez *.txt entre guillemets pour remplacer newLine et laissez la colonne New name telle quelle. Ceci vous permet d'extraire tous les fichiers .txt du dossier spécifié dans HDFS sans en modifier les noms. Dans cet exemple, le fichier est in.txt.

Lire des données de HDFS et les sauvegarder localement

  1. Dans l'espace de modélisation, sélectionnez le composant tFileInputDelimited. Cliquez sur l'onglet Component pour définir ses Basic settings.

  2. Dans la liste Property Type, sélectionnez le type Built-In.

  3. A côté du champ File Name/Stream, cliquez sur le bouton [...] pour parcourir votre répertoire jusqu'au fichier obtenu de HDFS. Dans ce scénario, le fichier est C:/hadoopfiles/getFile/in.txt.

  4. Dans la liste Schema, sélectionnez Built-In et cliquez sur Edit schema pour définir les données à passer au composant tLogRow.

  5. Cliquez sur le bouton [+] pour ajouter une nouvelle colonne.

  6. Cliquez sur OK pour fermer la boîte de dialogue et accepter la propagation des modifications.

Exécuter le Job

Sauvegardez le Job et appuyez sur la touche F6 pour l'exécuter.

Le fichier in.txt est créé et chargé dans HDFS.

Le fichier est aussi extrait de HDFS à l'aide du composant tHDFSGet et lu par le composant tFileInputDelimited.