Hadoop 1
Hadoop 1
Hadoop 1
Introduction
Introduction
1. Introduction
1. Architecture
What is Hadoop?
Vente : Etsy, un site de e-commerce analyse les gros volumes des données de logs
pour déterminer le comportement utilisateur ou les recommandations de recherche.
Introduction
Hadoop
Hadoop est un système de gestion de données et de traitements distribués. Il
contient de beaucoup de composants, dont :
Hadoop : HDFS
HDFS: Hadoop Distributed File System.
● Système de fichiers distribué associé à Hadoop. C'est là qu'on stocke
données d'entrée, de sortie, etc.
Caractéristiques:
● Distribué
● Redondé
● Conscient des caractéristiques physiques de l'emplacement des serveurs
(racks) pour l'optimisation.
Architecture
Hadoop : HDFS
Repose sur deux serveurs:
Hadoop : HDFS
Architecture
Hadoop : HDFS
Ecriture d’un fichier
1. Le client contacte le NameNode du cluster, indiquant la taille du fichier et son nom.
Hadoop : HDFS
Architecture
Hadoop : HDFS
Lecture d’un fichier
1. Le client contacte le NameNode du cluster, indiquant le fichier qu'il souhaite obtenir.
2. Le NameNode lui indique la taille, en blocs, du fichier, et pour chaque bloc une liste de
DataNodes susceptibles de lui fournir.
3. Le client contacte les DataNodes en question pour obtenir les blocs, qu'il reconstitue
sous la forme du fichier.
Hadoop : HDFS
Architecture
Hadoop : HDFS
Hadoop : HDFS
Limites
Le modèle map/reduce
Plan
1. Présentation
1. Exemples
1. MAP, va transformer les données d'entrée en une série de couples clef/valeur. Elle va
regrouper les données en les associant à des clefs, choisies de telle sorte que les couples
clef/valeur aient un sens par rapport au problème à résoudre.
On doit pouvoir découper les données d'entrée en plusieurs fragments, et faire exécuter
l'opération MAP à chaque machine du cluster sur un fragment distinct.
on attribuera à chacune des machines du cluster une des clefs uniques produites par MAP,
en lui donnant la liste des valeurs associées à la clef. Chacune des machines
effectuera alors l'opération REDUCE pour cette clef.
Présentation
Présentation
2. Mapper chacun de ces fragments pour obtenir des couples (clef ; valeur).
4. Réduire (reduce) les groupes indexés par clef en une forme finale, avec une
valeur pour chacune des clefs distinctes.
Présentation
Présentation
● Choisir une manière de découper les données d'entrée de telle sorte que
l'opération MAP soit parallélisable.
Exemple1:
Imaginons qu'on nous donne un texte écrit en langue Française. On souhaite
déterminer pour un travail de recherche quels sont les mots les plus utilisés au
sein de ce texte (exemple Hadoop très répandu).
Etape1 : Déterminer une manière de découper (split) les données d'entrée pour
que chacune des machines puisse travailler sur une partie du texte.
Idée : découper les données d'entrée ligne par ligne. Chacune des lignes du
texte sera un fragment de nos données d'entrée. Pour simplifier le traitement on
A choisir de passer l'intégralité du texte en minuscules
Exemples
Exemple1:
Etape 2 : Déterminer la clé à utiliser pour notre opération MAP, et écrire le
code de l'opération MAP elle-même.
Puisqu'on s'intéresse aux occurrences des mots dans le texte, et qu'à terme on
aura après l'opération REDUCE un résultat pour chacune des clefs distinctes,
la clef qui s'impose logiquement dans notre cas est: le mot-lui même.
clef/valeur: (MOT ; 1)
Exemple1:
Etape 3 : Coder l’opération Map
Le pseudo code de map est le suivant :
Exemple1:
Une fois notre opération MAP effectuée (de manière distribuée), Hadoop groupera
(shuffle) tous les couples par clef commune. Cette opération est effectuée
automatiquement par Hadoop. Elle est, là aussi, effectuée de manière distribuée en
utilisant un algorithme de tri distribué, de manière récursive. Après son exécution,
on obtiendra les 15 groupes suivants:
Exemples
Exemple1:
Etape 3 : Coder l’opération Reduce
Il nous reste à créer notre opération REDUCE, qui sera appelée pour chacun
des groupes/clef distincte. Dans notre cas, elle va simplement consister
à additionner toutes les valeurs liées à la clef spécifiée:
Exemple1:
Exemple 1: recap
Exemples
Appliquer le map/reduce ?
- Découpage (split) : les ligne de fichier log
- La clé : l’adresse URL, nb occurence
- Map : générer les clés
- Reduce : calculer
Exemples
Ligne Clé
Exemples
Exemple 4: anagrammes :
Exemple 4: anagrammes :
Exemple 4: anagrammes :
une entreprise dispose d'un compte twitter pour son service aprés vente,
recevant plusieurs dizaines de milliers de tweets par jour. Elle cherche à
déterminer le taux de satisfaction de ses clients à partir du compte twitter.
Exemples
Exemple 5: publication
Chaque article scientifique publié dans journal, conférence ou autre, et signé par
une liste d’auteurs. On veut calculer, pour chaque trio d’auteurs (x, y, z), le
nombre d’articles que ces trois auteurs ont co-signés. Précisions: si les auteurs
d’un article sont un sur-ensemble de (x, y, z) (par ex. (x, u, v, y, w, z)) ça compte
pour 1. L’ordre des auteurs ne compte pas: (z, y, x) est considéré comme une
occurrence.
Exemple 5: publication