Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

Développer une application Big Data avec Hadoop

Parser le fichier d'entrée dans un mapper

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Apprenez à coder un mapper qui récupère les données d'entrée ainsi que les parses, et les transmet en groupe aux reducers.
05:59

Transcription

Maintenant que nous avons mis en place notre structure HBase nous pouvons créer notre projet et notre MapReduce d'import des données. Alors, nous avons mis les données directement dans HDFS, dans le répertoire data/by_year et nous avons notamment le fichier 2017. Alors, on va même d'ailleurs supprimer le fichier temporaire 2016 et donc, nous avons le fichier 2017.scv.gz qui contient les données de 2017 et nous allons regarder juste le début. Alors, nous allons mettre en place un projet sous eclipse. Sous eclipse, c'est avec la commande ./eclipse/eclipse. Le répertoire qui contient eclipse par défaut sur la quickstart vm de cloudera et nous allons pouvoir créer directement un nouveau projet Java que l'on va appeler, par exemple MonApp. Nous allons continuer et nous allons surtout rajouter les librairies correspondant dans Hadoop qu'on va trouver dans User lib Hadoop. Alors, on va prendre User lib Hadoop et tout son contenu, aisni que User lib Hadoop lib et tout son contenu, également User lib Hadoop MapReduce, par exemple, les dépendances et enfin HBase dont on va se servir. Voilà nous avons rajouté toutes les dépendances dont nous pourrions avoir besoin et nous allons pouvoir créer réellement notre classe de Mappeur. Alors, on va créer un fichier qui va être GhcnYearFileMapper qui va permettre de lire un fichier par année de Ghcn et qui va étendre la classe Mappeur, attention, on prend bien la classe Mappeur du Package org Apache Hadoop MapReduce qui correspond, donc, à l'API v2 et non pas du Package orgApache Hadoop MapRed qui correspond à l'API v1. Alors, eclipse est en train d'indexer, il nous les retrouve donc, on ne prend pas MapRed mais bien MapReduce. On a créé notre Mappeur, on renseigne les différents types. Alors, comme le Mappeur va lire d'un fichier il va prendre un numéro de ligne et une ligne, le numéro de ligne ça sera LongWritable et la ligne, ce sera, donc, un texte qui est en Writable et il va écrire de ce fait-là, par exemple de texte. On va pouvoir créer la méthode Map qu'on va demander avec un Ctrl espace à eclipse de préremplir et on va pouvoir directement coder notre Mappeur. Alors, le Mappeur doit lire la ligne transmise dans Value qui est sous ce format-là et extraire les données, notamment le nom de la station, la date qui est dans le format en plus qu'il nous faut, le nom de la mesure et la valeur. On va simplement faire un split sur la string, donc, on va faire un value.toString pour récupérer le texte en String, réaliser un split dessus pour les découper selon le séparateur virgule et on va mettre ça dans une variable qui peut-être par exemple Fields, donc, un tableau de String. On va vérifier quand même que la ligne qu'on est en train de lire contient assez de champs, en fait, assez de virgules, c'est-à-dire qu'on ait au minimum quatre champs qui sont ceux que l'on va utiliser. Ceux d'après, on peut les ignorer, ils ne nous concernent pas dans le cadre de cette application. Et on va essayer de passer cette ligne et donc, de mettre le résultat directement dans la sortie. Alors, pour cela on va faire un context.write où on doit mettre deux textes, à priori new text et new text et donc, dans le premier texte on va grouper, on va dire par station et par date et dans le second texte par nom de mesure et valeur. Donc, le premier texte va avoir la station, soit c'est-à-dire Fields de 0 + virgule, par exemple pour le séparer et la date qui est de ce fait-là Fields de 1. Le second texte va, quant à lui, avoir le nom de la mesure, c'est-à-dire Fields de 2 et la valeur de la mesure qu'on va directement essayer de lire en Integer tout de même. Donc, on va faire Integer.parseInt de Fields de 3. On fait ce context.write directement, et on n'a même pas besoin de try-catch.

Développer une application Big Data avec Hadoop

Concevez une application Big Data avec la suite Hadoop. Stockez des données dans l'HDFS et dans HBase, traitez-les en MapReduce sous YARN, exportez-les dans MySQL via Sqoop, etc.

2h31 (25 vidéos)
Aucun commentaire n´est disponible actuellement
 

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !