Convertir un Job MapReduce en un Job Spark Batch - 6.3

Talend Real-time Big Data Platform Guide de prise en main

EnrichVersion
6.3
EnrichProdName
Talend Real-Time Big Data Platform
task
Administration et monitoring
Création et développement
Déploiement
Installation et mise à niveau
Qualité et préparation de données
EnrichPlatform
Studio Talend
Talend Administration Center
Talend CommandLine
Talend DQ Portal
Talend ESB
Talend Installer
Talend Runtime

Ce scénario vous explique comment créer simplement un Job Spark Batch en convertissant le Job MapReduce existant afin de traiter les données relatives aux films et aux réalisateurs dans un environnement Spark.

Ce scénario démontre :

  1. comment convertir un Job. Consultez Convertir le Job pour plus d'informations.

  2. comment faire les modifications nécessaires après la conversion du Job. Consultez Modifier le Job converti pour plus d'informations.

Convertir le Job

Convertir le Job MapReduce existant en un Job Spark Batch vous permet de tirer parti des éléments existants pour créer facilement un Job Spark.

Prérequis :

Procédez comme suit pour convertir le Job :

  1. Dans la vue Repository, développez les nœuds Job Designs > Big Data Batch, puis les dossiers getting_started et mapreduce.

  2. Cliquez-droit sur le Job aggregate_movie_director_mr et, dans le menu contextuel, sélectionnez Duplicate.

    La fenêtre [Duplicate] s'ouvre.

  3. Dans le champ Input new name, nommez ce doublon aggregate_movie_director_spark_batch.

  4. Dans la liste [Framework], sélectionnez Spark, puis cliquez sur OK afin de valider les modifications.

    Le Job aggregate_movie_director_spark_batch s'affiche dans le dossier mapreduce du Repository.

  5. Cliquez-droit sur le dossier getting_started et sélectionnez Create folder dans le menu contextuel.

  6. Dans l'assistant [New Folder], nommez le nouveau dossier spark_batch et cliquez sur Finish pour créer le dossier.

  7. Déposez le Job aggregate_movie_director_spark_batch dans le dossier spark_batch.

Ce nouveau Job Spark Batch est prêt à être modifié.

Modifier le Job converti

Vous pouvez mettre à jour les composants, si nécessaire, pour finaliser un processus de transformation de données dans le framework Spark.

Prérequis :

  • Vous devez avoir vérifié que la machine cliente sur laquelle les Jobs Talend sont exécutés peut reconnaître les noms d'hôtes du cluster Hadoop à utiliser. Dans cet objectif, ajoutez les mappings des entrées adresse IP/nom d'hôte pour les services de ce cluster Hadoop dans le fichier hosts de la machine cliente.

    Par exemple, si le nom d'hôte du serveur du NameNode Hadoop est talend-cdh550.weave.local et son adresse IP est 192.168.x.x, l'entrée du mapping est la suivante 192.168.x.x talend-cdh550.weave.local.

  • Le cluster Hadoop à utiliser doit avoir été configuré et doit être en cours d'exécution.

    Le cluster Cloudera CDH V5.5 utilisé dans ce scénario intègre Spark par défaut.

  • L'administrateur du cluster doit avoir donné les droits en lecture/écriture à l'utilisateur accédant aux données et répertoires dans HDFS.

Une fois le Job aggregate_movie_director_spark_batch créé via la conversion depuis sa version MapReduce, faites les modifications nécessaires à sa finalisation.

  1. Dans le Repository, double-cliquez sur le Job aggregate_movie_director_spark_batch pour l'ouvrir dans l'espace de modélisation graphique.

    Un composant tHDFSConfiguration a automatiquement été ajouté et hérite de la configuration de la connexion à HDFS du Job MapReduce original.

    L'icône indique que les composants utilisés dans le Job original n'existent pas dans le framework du Job courant, Spark Batch. Dans cet exemple, les composants manquants sont le tHDFSInput et le tHDFSOutput.

  2. Cliquez sur le tHDFSInput pour le sélectionner, puis, dans la boîte de dialogue [Warning], cliquez sur OK pour fermer cette fenêtre.

  3. Appuyez sur la touche Delete de votre clavier afin de supprimer le tHDFSInput.

  4. Dans l'espace de modélisation graphique du Job, saisissez le nom du tFileInputDelimited et sélectionnez ce composant dans la liste qui s'affiche.

    Un tFileInputDelimited est ajouté à l'espace de modélisation graphique.

  5. Répétez l'opération pour remplacer le tHDFSOutput par un tFileOutputDelimited.

  6. Développez le nœud Hadoop cluster sous le nœud Metadata du Repository, développez le nœud de la connexion à Hadoop my_cdh et son nœud fils pour afficher la métadonnée du schéma movies, configurée dans le dossier HDFS, comme expliqué dans Préparation de la métadonnée du fichier.

  7. Déposez cette métadonnée sur le composant tFileInputDelimited dans l'espace de modélisation graphique du Job.

  8. Cliquez-droit sur le tFileInputDelimited et, dans le menu contextuel, sélectionnez Row > Main puis cliquez sur le tMap afin de relier ces deux composants.

  9. Cliquez-droit sur le tMap et, dans le menu contextuel, sélectionnez Row > out1, puis cliquez sur le nouveau tFileOutputDelimited afin de relier ces deux composants.

  10. Double-cliquez sur le nouveau tFileOutputDelimited pour ouvrir sa vue Component.

  11. Dans le champ Folder, saisissez le chemin d'accès ou parcourez votre système jusqu'au répertoire dans lequel écrire les résultats. Dans ce scénario, le chemin est /user/ychen/output_data/spark_batch/out, recevant les enregistrements contenant les noms des réalisateurs.

  12. Cochez la case Merge result to single file, afin de fusionner les fichiers part- générés par MapReduce en un seul fichier.

    Le champ Merge file path s'affiche.

  13. Dans le champ Merge file path, saisissez votre chemin d'accès ou parcourez votre système jusqu'au fichier dans lequel vous souhaitez fusionner les fichiers part-.

    Dans ce scénario, le fichier est /user/ychen/output_data/spark_batch/out/merged.

  14. Double-cliquez sur l'autre tFileOutputDelimited recevant le lien reject du tMap pour ouvrir sa vue Component.

  15. Dans le champ Folder, configurez le répertoire à /user/ychen/output_data/spark_batch/reject.

  16. Dans la vue Run, cliquez sur l'onglet Spark configuration afin de vérifier que les métadonnées de connexion à Hadoop/Spark ont bien été héritées du Job original.

    Vous devez toujours utiliser l'onglet Spark Configuration pour définir la connexion à une distribution Hadoop/Spark donnée pour le Job complet Spark Batch. Cette connexion est effective uniquement pour le Job dans lequel elle est définie.

  17. Si vous n'êtes pas sûr que le cluster Spark puisse résoudre le nom de l'hôte de la machine où est exécuté le Job, cochez la case Define the driver hostname or IP address et, dans le champ qui s'affiche, saisissez l'adresse IP de la machine.

    Si vous laissez décochée cette case, le cluster Spark cherche la machine située à l'emplacement 127.0.0.1, c'est-à-dire la machine dans le cluster pour le pilote Spark.

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

    La vue Run est automatiquement ouverte dans la partie inférieure du Studio et affiche l'avancement de l'exécution du Job.

Cela fait, vous pouvez vérifier, par exemple, dans la console Web de votre système HDFS, que la sortie a bien été écrite dans HDFS.