49 1 3MB
Modes de traitement
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Framework de traitement • Map-Reduce • Pig • Hive • Impala • Spark • Flink • etc 115
Map-Reduce
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Map-Reduce
117
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Map Reduce: Introduction Idée: Découper le programme en plusieurs sous-problèmes de taille réduite à exécuter sur chaque machine du cluster. • Publication issue du département de recherche de Google en 2004: • MapReduce: Simplified Data Processing on Large Clusters.
118
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Map Reduce: Introduction • Fusionne le calcul et les données (combine le stockage et le traitement ensemble) • Le nœud de stockage est également nœud de calcul (autant de traitement que de stockage) • "Déplacer le code vers les données"
119
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Défis du traitement parallèle avant Hadoop 1.Distribution du code vers le cluster 2.Distribution uniforme des données sur le cluster 3.Exécuter des tâches en parallèle 4.Collecter tous les résultats 5.Récupération en cas échecs, si nécessaire
Hadoop - MapReduce fait tout ça! 120
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Map-Reduce • Patron d’architecture de traitement • Permet de traiter des données volumineuses de manière parallèle et distribuée • Les langages utilisés : Java, Python ou Ruby • Au lieu de parcourir le fichier séquentiellement (beaucoup de temps), il est divisé en morceaux qui sont parcourus en parallèle.
121
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Map-Reduce • Ce modèle se base sur 2 étapes : 1. Mapping (map tasks) : le développeur définit une fonction de mappage dont le but sera d'analyser les données brutes contenues dans les fichiers stockés sur HDFS pour en sortir les données correctement formatées. 2. Réduction (reduce tasks) : cette tâche récupère les données construites dans l'étape du mappage et s'occupe de les analyser dans le but d'en extraire les informations les plus importantes. 122
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Résolution • Pour résoudre un problème via la méthodologie MapReduce avec Hadoop, on devra donc: 1. Choisir une manière de découper les données d'entrée de telle sorte que l'opération MAP soit parallélisable. 2. Définir quelle CLEF utiliser pour notre problème. 3. Écrire le programme pour l'opération MAP. 4. Ecrire le programme pour l'opération REDUCE. • … et Hadoop se chargera du reste (problématiques calcul distribué, groupement par clef distincte entre MAP et REDUCE, etc.). 123
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Map-Reduce: Exemple1 • On souhaite déterminer pour un travail de recherche quels sont les mots les plus utilisés au sein d’un texte.
• Etape 1: 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. • Notre problème est ici très simple – on peut par exemple décider de 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. 124
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Map-Reduce: Exemple1 •
Pour simplifier les choses, on va avant le découpage: • Supprimer toute ponctuation et tous les caractères accentués. • On
va
l'intégralité
également du
passer
texte
en
minuscules.
125
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Map-Reduce: Exemple1
• On
obtient 4 fragments depuis nos
données d'entrée
126
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Map-Reduce: Exemple1 • Etape 2: On doit désormais déterminer la clef à 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.
• Etape 3: Quand à notre opération MAP, elle sera elle aussi très simple: on va simplement parcourir le fragment qui nous est fourni et, pour chacun des mots, générer le couple clef/valeur: (MOT ; 1). La valeur indique ici l’occurrence pour cette clef - puisqu'on a croisé le mot une fois, on donne la valeur « 1 ». 127
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Map-Reduce: Exemple1
128
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Map-Reduce: 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: 129
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Map-Reduce: Exemple1 • Etape 4: 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:
130
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Map-Reduce: Exemple1 • Une fois l'opération REDUCE effectuée, on obtiendra donc une valeur unique pour chaque clef distincte. • En l’occurrence, notre résultat sera:
131
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Map-Reduce: Exemple1 (Synthèse)
132
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Programmation Hadoop • Comme indiqué précédemment, Hadoop est développé en Java. • Les tâches MAP/REDUCE sont donc implémentables par le biais d'interfaces Java. Un programme Hadoop se compile au sein d'un .jar. • Pour développer un programme Hadoop, on va créer trois classes distinctes: 1. Une classe dite « Driver » qui contient la fonction main du programme. Cette classe se chargera d'informer Hadoop des types de données clef/valeur utilisées, des classes se chargeant des opérations MAP et REDUCE, et des fichiers HDFS à utiliser pour les entrées/sorties. 2. Une classe MAP (qui effectuera l'opération MAP). 3. Une classe REDUCE (qui effectuera l'opération REDUCE).
133
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Architecture d’un système de traitement distribué 1. La puissance de traitement nécessaire est trop grande pour une seule machine •Faire le traitement sur plusieurs machines indépendantes 2. Comment coordonner plusieurs travailleurs / nœuds? •Un maître pour coordonner 3. La communication •Chaque nœud envoie un battement de cœur au nœud maître 134
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Architecture d’un système de traitement distribué 4. Comment puis-je distribuer les données d'entrée entre les nœuds? •Les données sont déjà distribuées, grâce à HDFS! 5. Prise en charge de l'échec •Si un nœud a échoué, nous devons donner la tâche à un autre nœud.
Q: Reprendre une tâche ou redémarrer une tâche? Nous avons ainsi presque conçu MapReduce. 135
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
MapReduce Architecture (V1) Job Tracker
Task Tracker
Task Tracker
Task Tracker
Task Tracker
136
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
MapReduce Architecture (V1) • Deux processus JobTracker et TaskTracker •
Tasktracker : exécute une fonction map ou reduce, envoie des rapports d'avancement au ...
•
Jobtracker : assigne les différentes tâches aux différents tasktracker
137
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Job Tracker (JT) / Task Tracker (TT) Job Tracker •
Task Tracker
JT le "maître" de MapReduce, uniquement un JT par
•
Les TTs sont les esclaves
cluster
•
Les TT s’exécutent sur chacun des nœuds
•
JT est un processus Java démon (en background)
•
JT n'exécute aucun travail MR et surveille les progrès
•
TT est un processus Java démon (en background)
réalisés
•
Les TT envoient des pulsations régulières à JT
Gère les autres trackers de tâches
•
L'échec est toléré (pas critique)
•
•
Surveille les battements du cœur
•
Déconnecte les nœuds qui ne répondent pas, récupère
et
exécutent des tâches Map/Reduce
les erreurs, et redémarre les tâches lentes et les tâches qui ont échoué •
S’occupe de la répartition des charges de travail aux TT (distribution des tâches)
•
L'échec est critique (son échec est un problème: SPOF)
138
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Hadoop = HDFS + MapReduce Name Node
Data Node
Data Node
Data Node
Data Node
Job Tracker Task Tracker
Task Tracker
Task Tracker
Task Tracker
139
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Hadoop = HDFS + MapReduce Master nodes
Workers are Co-located
Name Node
Job Tracker
Worker / Data nodes
Data Node
Data Node
Data Node
Data Node
Task Tracker
Task Tracker
Task Tracker
Task Tracker 140
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Hadoop Architecture (V1)
141
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Gestion des ressources • MapReduce a un modèle de gestion de mémoire non flexible basé sur les slots. • Chaque TaskTracker est configuré au démarrage pour avoir un nombre bien déterminé de slots (map slot, reduce slot) pour l’exécution des tâches • Une tâche est exécutée dans un seul slot • Les slots sont configurés au démarrage pour avoir un maximum d’espace mémoire
142
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Limites de MPR1 • Scalabilité limitée : Le JobTracker s’exécute sur une seule machine. Ses rôles sont : Gestion des ressources, ordonnancement & suivi des Job • Problème de disponibilité : Le JobTracker est un SPOF (Single Point of Failure). S’il est endommagé, tous les jobs doivent être redémarrés. • Problème d’utilisation des ressources : Il y a un nombre prédéfini de slots map et de slots reduce pour chaque TaskTrackers. • Utilisation des applications non-MapReduce : Le JobTracker est intégré à MapReduce et ne supporte que les applications utilisant le framework de programmation MapReduce (programmation en mode "batch")
143
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Nouveautés Hadoop 2 • YARN – Possibilité de traitement de Terabytes et Petabytes de données existants dans HDFS en utilisant des applications Non-MapReduce • Resource Manager – Séparation des deux fonctionnalités essentielles du JobTracker (gestion des ressources et ordonnancement & suivi des jobs) en deux composants séparés : • Gestionnaire de Resource • Gestionnaire d’application (nœud de traitement)
JobTracker et TasckTracker n’existent plus. 144
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Ordonnanceur de capacité • MPR1 : L’ordonnanceur assure un nombre bien déterminé de slots pour chaque groupe d’utilisateurs. Si on n’a pas de job mapReduce en cours, perte de ressources datanode.
• MPR2 : L’ordonnanceur de capacité ( Capacity Scheduler) garantit un partage de slots par tous les groupes d’utilisateurs Maximisation de l’utilisation des ressources
145
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
YARN • Hadoop 2.0 fournit des APIs YARN pour supporter d’autres frameworks qui pourront interagir avec HDFS. • Possibilité d’exécuter des applications Big Data non-MapReduce dans Hadoop. • Exemple: Spark, MPI, Giraph, et HAMA
146
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
YARN • YARN sépare la gestion des ressources/ordonnancement des job du traitement des données, permettant à Hadoop de supporter d’autre applications de traitement de données.
147
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
V1 vs. V2 Hadoop v1 MRV1 1) Processing 2) Resource Management
HDFS
Hadoop v2 Other
MapReduce V2
YARN (Resource Management)
HDFS
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Hadoop to YARN
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
MapReduce avec YARN? •MapReduce ne va nulle part! •Fonctionne très bien pour le traitement par lots •A fait ses preuves • Génère beaucoup de code
•Sous YARN: •Plus de JobTracker unique •Chaque travail MapReduce exécute une application •L'échec d'un AppMaster provoque uniquement donc l'échec de ce travail. Les autres emplois sont isolés et protégés. 150
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Synthèse:
MR n’est pas le bon choix pour les petites BD!
151
Architecture Hadoop Modes de stockage Modes de traitement Distributions du marché Technologies du data scientist
Le présent et l'avenir de Hadoop •Hadoop est la première génération de la technologie Big Data • A fait ses preuves! •
Big Data évolue vers Fast Data
•Les outils Big Data de deuxième génération apparaissent •Spark, Flink, Samza •
Le rôle de Hadoop aujourd’hui •Continuer à être un "lac de données" •Etre
un
écosystème
Big
Data
hébergeant
d'autres
technologies 152