Talend - Système de fichiers distribués Hadoop

Dans ce chapitre, apprenons en détail comment Talend fonctionne avec le système de fichiers distribué Hadoop.

Paramètres et pré-requis

Avant de passer à Talend avec HDFS, nous devons nous renseigner sur les paramètres et les pré-requis à remplir à cet effet.

Ici, nous exécutons Cloudera quickstart 5.10 VM sur une boîte virtuelle. Un réseau d'hôte uniquement doit être utilisé dans cette machine virtuelle.

IP du réseau hôte uniquement: 192.168.56.101

Vous devez également avoir le même hôte fonctionnant sur cloudera manager.

Maintenant, sur votre système Windows, accédez à c: \ Windows \ System32 \ Drivers \ etc \ hosts et modifiez ce fichier à l'aide du Bloc-notes comme indiqué ci-dessous.

De même, sur votre VM de démarrage rapide cloudera, modifiez votre fichier / etc / hosts comme indiqué ci-dessous.

sudo gedit /etc/hosts

Configuration de la connexion Hadoop

Dans le panneau du référentiel, accédez à Métadonnées. Cliquez avec le bouton droit sur Hadoop Cluster et créez un nouveau cluster. Donnez le nom, le but et la description de cette connexion de cluster Hadoop.

Cliquez sur Suivant.

Sélectionnez la distribution comme cloudera et choisissez la version que vous utilisez. Sélectionnez l'option de configuration de récupération et cliquez sur Suivant.

Entrez les informations d'identification du gestionnaire (URI avec port, nom d'utilisateur, mot de passe) comme indiqué ci-dessous et cliquez sur Se connecter. Si les détails sont corrects, vous obtiendrez Cloudera QuickStart sous les clusters découverts.

Cliquez sur Extraire. Cela récupérera toutes les connexions et configurations pour HDFS, YARN, HBASE, HIVE.

Sélectionnez Tout et cliquez sur Terminer.

Notez que tous les paramètres de connexion seront remplis automatiquement. Mentionnez cloudera dans le nom d'utilisateur et cliquez sur Terminer.

Avec cela, vous vous êtes connecté avec succès à un cluster Hadoop.

Connexion à HDFS

Dans ce travail, nous listerons tous les répertoires et fichiers présents sur HDFS.

Tout d'abord, nous allons créer un travail, puis y ajouter des composants HDFS. Faites un clic droit sur Job Design et créez un nouvel emploi - hadoopjob.

Ajoutez maintenant 2 composants de la palette - tHDFSConnection et tHDFSList. Faites un clic droit sur le tHDFSConnection et connectez ces 2 composants à l'aide du déclencheur 'OnSubJobOk'.

Maintenant, configurez les deux composants talend hdfs.

Dans le tHDFSConnection, choisissez Référentiel comme Type de propriété et sélectionnez le cluster Hadoop cloudera que vous avez créé précédemment. Il remplira automatiquement tous les détails nécessaires requis pour ce composant.

Dans le tHDFSList, sélectionnez «Utiliser une connexion existante» et dans la liste des composants, choisissez le tHDFSConnection que vous avez configuré.

Donnez le chemin d'accès à la maison de HDFS dans l'option Répertoire HDFS et cliquez sur le bouton Parcourir à droite.

Si vous avez correctement établi la connexion avec les configurations mentionnées ci-dessus, vous verrez une fenêtre comme illustré ci-dessous. Il listera tous les répertoires et fichiers présents sur l'accueil HDFS.

Vous pouvez vérifier cela en vérifiant votre HDFS sur cloudera.

Lire un fichier depuis HDFS

Dans cette section, voyons comment lire un fichier depuis HDFS dans Talend. Vous pouvez créer un nouvel emploi à cette fin, mais ici nous utilisons l'existant.

Faites glisser et déposez 3 composants - tHDFSConnection, tHDFSInput et tLogRow de la palette vers la fenêtre du concepteur.

Cliquez avec le bouton droit sur le tHDFSConnection et connectez le composant tHDFSInput à l'aide du déclencheur 'OnSubJobOk'.

Cliquez avec le bouton droit sur le tHDFSInput et faites glisser un lien principal vers le tLogRow.

Notez que le tHDFSConnection aura la même configuration que précédemment. Dans le tHDFSInput, sélectionnez «Utiliser une connexion existante» et dans la liste des composants, choisissez le tHDFSConnection.

Dans le nom de fichier, indiquez le chemin HDFS du fichier que vous souhaitez lire. Ici, nous lisons un simple fichier texte, donc notre type de fichier est Fichier texte. De même, en fonction de votre saisie, remplissez le séparateur de ligne, le séparateur de champ et les détails d'en-tête comme indiqué ci-dessous. Enfin, cliquez sur le bouton Modifier le schéma.

Puisque notre fichier ne contient que du texte brut, nous ajoutons une seule colonne de type String. Maintenant, cliquez sur Ok.

Note - Lorsque votre entrée comporte plusieurs colonnes de types différents, vous devez mentionner le schéma ici en conséquence.

Dans le composant tLogRow, cliquez sur Synchroniser les colonnes dans modifier le schéma.

Sélectionnez le mode dans lequel vous souhaitez que votre sortie soit imprimée.

Enfin, cliquez sur Exécuter pour exécuter le travail.

Une fois que vous avez réussi à lire un fichier HDFS, vous pouvez voir la sortie suivante.

Écriture d'un fichier sur HDFS

Voyons comment écrire un fichier depuis HDFS dans Talend. Faites glisser et déposez 3 composants - tHDFSConnection, tFileInputDelimited et tHDFSOutput de la palette vers la fenêtre du concepteur.

Faites un clic droit sur le tHDFSConnection et connectez le composant tFileInputDelimited à l'aide du déclencheur 'OnSubJobOk'.

Faites un clic droit sur le tFileInputDelimited et faites glisser un lien principal vers le tHDFSOutput.

Notez que le tHDFSConnection aura la même configuration que précédemment.

Maintenant, dans le tFileInputDelimited, donnez le chemin du fichier d'entrée dans l'option Nom de fichier / Stream. Ici, nous utilisons un fichier csv comme entrée, donc le séparateur de champ est «,».

Sélectionnez l'en-tête, le pied de page, la limite en fonction de votre fichier d'entrée. Notez qu'ici notre en-tête est 1 car la ligne 1 contient les noms de colonne et la limite est 3 car nous n'écrivons que les 3 premières lignes sur HDFS.

Maintenant, cliquez sur modifier le schéma.

Maintenant, selon notre fichier d'entrée, définissez le schéma. Notre fichier d'entrée comporte 3 colonnes comme mentionné ci-dessous.

Dans le composant tHDFSOutput, cliquez sur synchroniser les colonnes. Ensuite, sélectionnez le tHDFSConnection dans Utiliser une connexion existante. De plus, dans Nom de fichier, indiquez un chemin HDFS où vous souhaitez écrire votre fichier.

Notez que le type de fichier sera un fichier texte, l'action sera «créer», le séparateur de ligne sera «\ n» et le séparateur de champ sera «;»

Enfin, cliquez sur Exécuter pour exécuter votre travail. Une fois le travail exécuté avec succès, vérifiez si votre fichier est présent sur HDFS.

Exécutez la commande hdfs suivante avec le chemin de sortie que vous avez mentionné dans votre tâche.

hdfs dfs -cat /input/talendwrite

Vous verrez la sortie suivante si vous réussissez à écrire sur HDFS.