Outils Hadoop pour le BigData

Extrait du cours outils Hadoop pour le BigData

……
1.4.8. Exemple
Une entreprise de téléphonie veut calculer la durée totale des appels téléphoniques d’un abonné à partir d’un fichier CSV contenant tous les appels de tous les abonnés (n° d’abonné, n° appelé, date, durée d’appel). Ce problème se traite ainsi :
1. En entrée, on a le fichier des appels (1 appel par ligne)
2. YARN lance une instance de la fonction Map par appel
3. Chaque instance de Map reçoit une paire (offset, ligne) et produit une paire (n° abonné, durée) ou rien si c’est pas l’abonné qu’on veut. NB: l’offset ne sert à rien ici.
4. YARN envoie toutes les paires vers une seule instance de Reduce (car il n’y a qu’une seule clé différente)
5. L’instance de Reduce additionne toutes les valeurs des paires qu’elle reçoit et produit une seule paire en sortie (n° abonné, durée totale)
1.4.9. Remarques
En réalité, il n’y a pas qu’une seule instance de Reduce, il y en a plusieurs pour faire la réduction de manière hiérarchique plus rapidement. Car en général l’algorithme qu’on écrit dans la fonction Reduce est une boucle sur chaque valeur reçue.
Également, en réalité, il n’y a pas une instance de Map par ligne de données. C’est la vision qu’on peut avoir en tant que programmeur, mais ça conduirait à un nombre gigantesque d’instances pour traiter un énorme fichier. En fait, YARN instancie un seul «Mappeur» par machine esclave et appelle sa méthode map à plusieurs reprises pour traiter les données séquentiellement.
Ce cours fait plusieurs simplifications comme cela afin de rester compréhensible pour une première découverte de Hadoop.
1.4.10. Étapes d’un job MapReduce
Un job MapReduce comprend plusieurs phases :
1. Prétraitement des données d’entrée, ex: décompression des fichiers
2. Split: séparation des données en blocs traitables séparément et mise sous forme de (clé, valeur),  ex: en lignes ou en n-uplets
3. Map: application de la fonction map sur toutes les paires (clé, valeur) formées à partir des données d’entrée, cela produit d’autres paires (clé, valeur) en sortie
4. Shuffle& Sort: redistribution des données afin que les paires produites par Map ayant les mêmes clés soient sur les mêmes machines
5. Reduce: agrégation des paires ayant la même clé pour obtenir le résultat final.
1.4.11. Un schéma
1.4.12. Explication du schéma
1. Au début, YARN se renseigne sur l’emplacement des données auprès du namenode et les fait décompresser si besoin par les datanodes concernés.
2. La phase Split consiste à construire des paires (n° de n-uplet, n-uplet) à fournir aux tâches Map.
3. YARN crée des processus Map sur chaque machine contenant une partie des données et leur fournit les paires de leur machine successivement.
4. Chaque tâche Map analyse ses données et émet ou non une paire. Ça peut consister à convertir des chaînes en nombres, à faire des calculs, etc.
1.4.13. Explication du schéma (suite)
5. YARN trie les paires sortant de Map selon leur clé et les envoie sur la machine qui fait tourner la tâche Reduce concernée par cette clé.
6. Les tâches Reduce reçoivent une liste de paires et effectuent la réduction des valeurs (max, sum, avg. . . ). Elles émettent seulement la valeur finale. Elles peuvent être mises en cascade quand il y a beaucoup de paires.
1.5. Mise en œuvre dans Hadoop
1.5.1. Présentation
On arrive à la partie la plus technique : la programmation d’un job MapReduce en Java.
Il faut définir trois classes :
• Une sous-classe de Mapper. Elle contient une seule méthode, appelée map qui reçoit une paire clé-valeur en paramètre. Elle génère un nombre quelconque de paires.
………

Sommaire: Outils Hadoop pour le BigData

1 Principes du« Map-Reduce »
1.1 Introduction
1.1.1 Pourquoi ce cours ?
1.1.2 Préfixes multiplicatifs
1.1.3 Mégadonnées ?
1.1.4 Distribution données et traitements
1.1.5 Un Data Center
1.1.6 Serveur « lame »
1.1.7 Machines connectées
1.1.8 Hadoop ?
1.2 Hadoop File System (HDFS)
1.2.1 Présentation
1.2.2 Organisation des fichiers
1.2.3 Commande hdfs dfs
1.2.4 Échanges entre HDFS et le monde
1.2.5 Comment fonctionne HDFS ?
1.2.6 Organisation des machines pour HDFS
1.2.7 Un schéma des nodes HDFS
1.2.8 Explications
1.2.9 Mode high availability
1.2.10 API Java pour HDFS
1.2.11 Exemple
1.2.12 Informations sur les fichiers
1.2.13 Lecture d’un fichier HDFS
1.2.14 Création d’un fichier HDFS
1.2.15 Compilation et lancement
1.3 Algorithmes « Map-Reduce »
1.3.1 Principes
1.3.2 Exemple
1.3.3 Exemple (suite)
1.3.4 Exemple en python
1.3.5 Explications
1.3.6 Parallélisation de Map
1.3.7 Parallélisation de Reduce
1.3.8 Un schéma
1.4 YARN et MapReduce
1.4.1 Qu’est-ce que YARN ?
1.4.2 Qu’est-ce que MapReduce ?
1.4.3 Paires clé-valeurs
1.4.4 Map
1.4.5 Schéma de Map
1.4.6 Reduce
1.4.7 Schéma de Reduce
1.4.8 Exemple
1.4.9 Remarques
1.4.10 Étapes d’un job MapReduce
1.4.11 Un schéma
1.4.12 Explication du schéma
1.4.13 Explication du schéma (suite)
1.5 Mise en œuvre dans Hadoop
1.5.1 Présentation
1.5.2 Squelette de Mapper
1.5.3 Explications
1.5.4 Types de données MapReduce
1.5.5 Interface Writable
1.5.6 Classe Text
1.5.7 Squelette de Reducer
1.5.8 Explications
1.5.9 Squelette de Traitement
1.5.10 Squelette de Traitement (cœur)
1.5.11 Explications
1.5.12 Compilation et lancement d’un traitement
2 Approfondissement sur MapReduce
2.1 Jobs MapReduce
2.1.1 Création et lancement d’un Job
2.1.2 Configuration d’un Job
2.1.3 Spécification des entrées
2.1.4 Fichiers d’entrée
2.1.5 Format des données d’entrée
2.1.6 Autres formats d’entrée
2.1.7 Changement du séparateur de KeyValueTextInputFormat
2.1.8 Format des données intermédiaires
2.1.9 Format des données de sortie
2.1.10 Fichiers de sortie
2.1.11 Post-traitement des résultats
2.2 Types des clés et valeurs
2.2.1 Type Writable
2.2.2 Classe ArrayWritable
2.2.3 Emploi de cette classe
2.2.4 Méthodes supplémentaires
2.2.5 Interface Writable
2.2.6 Exemple d’un Writable
…….

Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Outils Hadoop pour le BigData (1,19 MO) (Cours PDF)

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *