Scénario : Traiter des données avec le système de fichiers distribués Hadoop - 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

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.