MP1 Big Data S4 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

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