Vous êtes sur la page 1sur 75

Enseignant : Mohamed MANAA

IBM Big Data Trainer


«Big Data Specialist» Certified

Année Universitaire : 2020-2021


Plan

I. Concepts de base du Big Data VII. Hbase

II. Architecture de la plateforme Big Data VIII. Hive

III. Architecture Hadoop IX. Big SQL

IV. Système HDFS X. JAQL

V. Paradigmes de Traitement parallèle «MapReduce» XI. Système Analytique «AQL»

VI. Hadoop Query Languages XII. BigSheets

2
I. CONCEPTS DE BASE DU BIG DATA

3
I. Concepts de base du Big Data
La maturité du BigData conséquence de plusieurs disciplines

GRID Computing : Calcul parallèle et distribué, HPC (High Performance Computer), capacité de
calcul haute performance
Cloud Computing : Capacité de stockage infini, réparti et sécurisé, fragmentation/réplication
Internet of Things (IoT) : Ubiquitous Computing (informatique ambiante)
Multitudes de devices connectés (plages IPV6 suffisantes)
Exemples : les web services façades de tout objet pingable (caméra, capteur, etc.), La
voiture comme ordinateur ambulant, la télé-maintenance proactive, la traçabilité (RFID), le
tracking par GPS, etc.
Web 3.0 (Social, Sémantique) : SNA (Social Network Analysis)
Data Management : SQL, noSQL, DWH (datawarehousing), BI (Business Intelligence)
NLP (Natural Language Processing)
4
I. Concepts de base du Big Data

90% 80% 20%


des données ont des données des données
été créées au actuelles ne sont disponibles peuvent
cours des sept pas structurés être traitées par des
dernières années systèmes
traditionnels

1 in 2 83% 5.4X
des chefs d'entreprise des responsables des plus probable que les plus
n'ont pas accès aux technologies de l'information et performants utilisent
données dont ils ont de la communication citent BI business analytics
besoin et analyses des données comme 5
part de leurs plan prévisionnel
I. Concepts de base du Big Data
4.6
30 billion RFID billion
Un monde tags today
500+ Million (1.3B in 2005)
camera
interconnecté et users posting 55 Million phones
tweets every day world
instrumenté wide

100s of
millions
of GPS
1.2 Trillion
searches

enabled
devices
sold
annually

1+ Billion 2+
active users billion
spending people
700 Million on the
minutes per
month
76 million smart Web by
meters in 2009… end 2011 6
200M by 2014
I. Concepts de base du Big Data

Caractéristiques du Big Data V4 = Volume Velocity Variety Veracity

Coûts de traitement Répondre à la Vitesse Analyser collectivement


efficace du Volume croissante Velocity l'élargissement de la
croissant Variété Variety
50x 30 Billion
35 ZB Capteurs 80% des
RFID et données
comptage mondiales ne
sont pas
structurés
2010 2020

Établissement de
1 à 3 des chefs d'entreprise ne font
la Véracité des pas confiance à l'information qu'ils
grandes sources utilisent pour prendre des décisions
de données
Veracity
7
I. Concepts de base du Big Data

8
I. Concepts de base du Big Data
Les 5 principaux cas d'utilisation de données clés

Exploration du Big Data Vue 360 ​° améliorée du client Extension de sécurité /


Trouver, visualiser, comprendre Étendre les vues des clients existantes intelligence
toutes les grandes données pour en intégrant des sources de données Risque plus faible, détection de la
améliorer la prise de décision internes et externes supplémentaires fraude et suivi de la cybersécurité en
temps réel

Analyse d'opérations Augmentation du stockage de données


Analyser une variété de données machine Intégrez big data et data warehouse pour 9
pour améliorer les résultats commerciaux accroître l'efficacité opérationnelle
I. Concepts de base du Big Data
Plus de façons & Des analyses et des techniques très variées

Text Analysis
Spatial Analysis Statistics Image Analysis

Temporal Analysis Machine Learning Video Analysis Audio Analysis

10
I. Concepts de base du Big Data
Big Data et complexité dans la santé

Les informations médicales


doublent tous les 5 ans,
dont une grande partie n'est
pas structurée

81% des médecins


signalent des dépenses de
5 heures par mois en
consultant des revues
médicales

“Medicine has become too complex (and only) about 20 percent of the knowledge clinicians use today is
evidence-based”
- Steven Shapiro, Chief Medical and Scientific Officer, UPMC
…to keep up with the state of the art, a doctor would have to devote 160 hours a week to perusing papers…”
The Economist Feb 14th 2013 11
I. Concepts de base du Big Data
Solutions Augmentez le
Plate-forme Big Data temps de valoriser
avec analytic et
Analytics and Decision Management
Rassembler, application
extraire et explorer accelerators
des données en
IBM Big Data Platform
utilisant la Analyser les
meilleure Visualization Applications & Systems données en continu
visualisation & Discovery Development Management pour des
informations en
Analyser de temps réel
manière rentable
Accelerators Indexer et
les petabytes
d'informations découvrir pour des
structurées et non Hadoop Stream Data Contextual idées collaboratives
structurées System Computing Warehouse Discovery

Gérer la qualité
des données et
gérer le cycle de Fournir une vision
vie de l'information approfondie avec les
Information Integration & Governance analyses avancées
de base de données
et les analyses
opérationnelles
Big Data Infrastructure
Cloud | Mobile | Security 12
I. Concepts de base du Big Data
Ingestion and Real-time Analytic Zone Analytics and
Reporting Zone
Un exemple de la Streams

plate-forme Big Warehousing Zone

Data en pratique BI &


Reporting

Enterprise
Warehouse
Connectors

Predictive
Analytics
Hadoop

MapReduce Hive/HBase Data Marts


Col Stores
Visualization
& Discovery

Documents
in variety of formats ETL, MDM, Data Governance

Landing and Analytics Sandbox Zone Metadata and Governance Zone 13


I. Concepts de base du Big Data
Comprendre et naviguer dans Federated Discovery
Manifeste de les sources Big Data fédérées and Navigation
Big Data (What not How/Patterns/Expert Systems, +++)
Gérer et stocker un énorme Hadoop File System
volume de données MapReduce
CONSOMMABLE

Structure et contrôle de Data Warehousing


données

Gérer les données en Stream Computing


streaming
MDM : Master Data
Managment
Analyser les données non Text Analytics Engine
structurées ILM : Information
Lifecycle
Managment
Intégrer et gérer toutes Integration, Data Quality,
les sources de données Security, ILM, MDM 14
I. Concepts de base du Big Data
Exemple d’utilisation de la plate-forme Big Data (1)

Services financiers
➢ Problème:
✓ Gérer les plusieurs Petabytes de données qui augmente de 40 à 100% par an sous
pression croissante pour prévenir les fraudes et se plaindre de la réglementation.
➢ Comment les grandes analyses de données peuvent-elles aider:
✓ Détection de fraude
✓ Gestion des risques
✓ Vue à 360 ° du client

15
I. Concepts de base du Big Data
Exemple d’utilisation de la plate-forme Big Data (2)

Services de télécommunication
➢ Problème:
✓ Les anciens systèmes sont utilisés pour obtenir des informations sur les données
produites en interne qui font face à des coûts de stockage élevés, à un long temps de
chargement des données et à un long processus d'administration.
➢ Comment les grandes analyses de données peuvent-elles aider:
✓ Traitement CDR
✓ Analyses Prédictives Fiables
✓ Geomapping / marketing
✓ Surveillance du réseau

16
I. Concepts de base du Big Data
Exemple d’utilisation de la plate-forme Big Data (3)

Services de transport
➢ Problème:
✓ La congestion du trafic a augmenté dans le monde grâce à une
urbanisation accrue et à une croissance démographique réduisant
l'efficacité des infrastructures de transport et augmentant le temps
de déplacement et la consommation de carburant.
➢ Comment les grandes analyses de données peuvent-elles aider:
✓ Analyse en temps réel des flux de données de congestion
météorologique et de trafic pour identifier les tendances de trafic
réduisant les coûts de transport.

17
II. ARCHITECTURE HADOOP

18
II. Architecture Hadoop

▪ Pourquoi? Quand? Où?


▪ Hadoop Basics
✓ Comparaison avec le SGBDR
▪ Hadoop architecture
✓ MapReduce
✓ HDFS
✓ Hadoop Common
✓ Ecosystème de projets connexes
✓ Pig, Hive, Jaql
✓ Autres projets
▪ Distributions Hadoop
19
II. Architecture Hadoop
Importance de Hadoop

"Nous croyons que plus de la moitié des données mondiales seront stockées dans Apache Hadoop dans les cinq
ans" Hortonworks

20
II. Architecture Hadoop
Améliorations matérielles au cours des années ...

➢ Vitesses du CPU:
✓ 1990 - 44 MIPS à 40 MHz
✓ 2010 - 147 600 MIPS à 3,3 GHz
➢ La mémoire RAM
✓ 1990 - Mémoire conventionnelle 640K (mémoire étendue 256K recommandée)
✓ 2010 - 8-32GB (et plus)
➢ Capacité du disque
✓ 1990 - 20 Mo
✓ 2010 - 1To
➢ Latence du disque (vitesse de lecture et d'écriture) - pas beaucoup d'amélioration au cours des 7 à 10
dernières années, actuellement d'environ 70 à 80 Mo / s
21
II. Architecture Hadoop
Améliorations matérielles au cours des années ...

Combien de temps faudra-t-il pour lire 1 To de données?


1TB (à 80Mb / sec):
1 disque - 3,4 heures
10 disques - 20 min
100 disques - 2 min
1000 disques - 12 sec

22
II. Architecture Hadoop
Le traitement de données en parallèle est la réponse!

▪ C'était avec nous pendant un certain temps:


✓ GRID Computing - charge de traitement qui se propage
✓ Bases de données parallèles - DB2 DPF, Teradata, Netezza, etc. (distribuer les données)

▪ Informatique distribuée: plusieurs ordinateurs apparaissent comme un superordinateur,


communiquent entre eux par passage de messages, fonctionnent ensemble pour atteindre un
objectif commun

23
II. Architecture Hadoop
Le traitement de données en parallèle est la réponse!

▪ Défis
✓ Hétérogénéité
✓ Ouverture
✓ Sécurité
✓ Évolutivité
✓ Concurrence
✓ Tolérance aux pannes
✓ Transparence

24
II. Architecture Hadoop
Qu'est-ce que Hadoop?

 Structure logicielle open source Apache pour un calcul réparti, évolutif et distribué d'une quantité
massive de données
 Masque les détails et les complexités du système pour l'utilisateur
 Développé en Java
 Composé de 3 sous-projets:
 MapReduce
 Hadoop Distributed File System «HDFS» : Système de fichiers distribués Hadoop
 Hadoop Common
 Soutenu par plusieurs projets liés à Hadoop
 Hbase, Zookeeper, Avro, Etc.
 Destiné à un matériel de produits hétérogènes
25
II. Architecture Hadoop
Les principes de conception de Hadoop

✓ Nouvelle façon de stocker et de traiter les données:


▪ Laissez le système gérer la plupart des problèmes automatiquement:
• Les échecs
• Évolutivité
• Réduire les communications
• Distribuer les données et le pouvoir de traitement à l'endroit où les données sont
• Faire en sorte que le parallélisme fasse partie du système d'exploitation
• Matériel relativement peu coûteux

✓ Apportez le traitement aux données!

26
II. Architecture Hadoop
Les principes de conception de Hadoop

✓ Hadoop = HDFS + MapReduce infrastructure

✓ Optimisé pour gérer


▪ Des quantités massives de données par un parallélisme
▪ Une variété de données (structuré, non structuré, semi-structuré)
▪ Utilisation d'un matériel de commodité peu coûteux

✓ Fiabilité fournie par réplication

27
II. Architecture Hadoop
Hadoop n'est pas pour tous les types de travail

 Ne traite pas les transactions - Transaction processing (accès aléatoire)

 Pas bon lorsque le travail ne peut pas être parallélisé

 Pas bon pour l'accès aux données à faible latence

 Pas bon pour traiter beaucoup de petits fichiers

 Pas bon pour les calculs intensifs avec peu de données

28
II. Architecture Hadoop
Qui utilise Hadoop?

29
II. Architecture Hadoop
Un peu d’histoire

30
II. Architecture Hadoop
Projets Open Source de Hadoop

Hadoop est complété par un écosystème de projets open source

Jaql

Oozie
31
II. Architecture Hadoop
Qu'est ce que Apache Hadoop?

 Prise en charge flexible de gros volumes de données


✓ Inspiré par les technologies Google (MapReduce, GFS, BigTable, ...)
✓ Initié à Yahoo
▪ À l'origine conçu pour résoudre les problèmes d'évolutivité de Nutch, une technologie de
recherche Web open source
✓ Bien adapté aux applications à lecture intensive
✓ Prend en charge une grande variété de données

32
II. Architecture Hadoop
Qu'est ce que Apache Hadoop?

 Permet aux applications de travailler avec des milliers de nœuds et petabytes de données de manière
parallèle et rentable
✓ CPU + disks = "node" = nœud
✓ Les " nodes " peuvent être combinés en clusters
✓ De nouveaux " nodes" peuvent être ajoutés au besoin sans changer :
▪ Formats de données
▪ Comment les données sont chargées
▪ Comment les emplois sont écrits

33
II. Architecture Hadoop
Deux aspects clés de Hadoop

 Framework MapReduce
✓ Comment Hadoop comprend et affecte le travail aux nœuds (machines)

 Hadoop Distributed File System = HDFS


✓ Système de fichiers distribués Hadoop
✓ Où Hadoop stocke les données
✓ Un système de fichiers qui couvre tous les nœuds dans un cluster Hadoop
✓ Il regroupe les systèmes de fichiers sur de nombreux nœuds locaux pour les
transformer en un grand système de fichiers

34
II. Architecture Hadoop
Quel est le Hadoop Distributed File System?

➢ HDFS stocke des données sur plusieurs nœuds

➢ HDFS suppose que les nœuds échoueront  Pour obtenir une fiabilité, HDFS effectue une réplication
des données sur plusieurs nœuds

➢ Le système de fichiers est construit à partir d'un cluster de nœuds de données, chacun d'entre eux
fournit des blocs de données sur le réseau en utilisant un protocole de bloc spécifique à HDFS.

35
II. Architecture Hadoop
Petite introduction à MapReduce

 Les données sont stockées sur l'ensemble du cluster


 Les programmes sont transmis aux données et non aux données du programme
 Les données sont stockées sur l'ensemble du cluster (le DFS)

 L'ensemble du cluster participe au 10110100 Cluster


10100100
1
11100111
système de fichiers 11100101
1 3
00111010 2
01010010
 Les blocs d'un seul fichier sont répartis 11001001
2 4 3
01010011 1
Blocks 00010100
sur le cluster 10111010
11101011
3
11011011
2 4
 Un bloc donné est généralement 01010110
10010101 4 2
00101010
1 3
10101110
répliqué pour la résilience 4
01001101
01110100

Logical File
36
II. Architecture Hadoop
Hadoop Common

▪ Anciennement connu sous le nom Hadoop Core


▪ Contient des utilitaires et des bibliothèques qui soutiennent les autres sous projets de Hadoop
✓ Système de fichiers
✓ Appel de procédure à distance (RPC)
✓ Sérialisation
▪ Par exemple : shell du système de fichiers
✓ Pour interagir directement avec les fichiers HDFS, vous devez utiliser
/bin/hdfs dfs <args>

hadoop fs –dus –h /user/hadoop/file1 hdfs://node/dir1

37
II. Architecture Hadoop
Hadoop - Exigences d'installation

▪ Types d’installation :
– Single-node:
• opérations simples
• test local et débogage
– Multi-node cluster:
• opération de niveau de production
• des milliers de nœuds

38
II. Architecture Hadoop
Hadoop - Exigences d'installation

▪ Matériel:
– Peut utiliser du matériel de base
– Bonnes pratiques:
• RAM: MapReduce jobs sont principalement liés aux E/S  planifiez suffisamment de RAM
• CPU: les processeurs haut de gamme ne sont souvent pas rentables
• Disks: utilisez des disques de haute capacité
• Network: dépend de la charge de travail, choisissez l'équipement de réseau haut de gamme pour les
grands clusters

39
II. Architecture Hadoop
Hadoop - Exigences d'installation

▪ Software:
– OS:
• GNU / Linux pour le développement et la production
• Windows / Mac pour le développement
– Java
– ssh

40
II. Architecture Hadoop
Propriétés de Hadoop

▪ Évolutif / Scalable
– De nouveaux nœuds peuvent être ajoutés en vol
▪ Abordable / Affordable
– Logiciel massivement parallèle sur les serveurs
▪ Flexible
– Hadoop est sans schéma et peut absorber tout type de données
▪ Tolérance de panne / Fault Tolerant
– Par le biais du framework MapReduce

41
III. SYSTÈME HDFS

42
III. Système HDFS

Hadoop Distributed File System (HDFS)

➢ Distribué, évolutif, tolérant aux pannes, débit élevé


➢ Accès aux données via MapReduce
➢ Fichiers divisés en blocs
➢ 3 répliques pour chaque donnée par défaut
➢ Peut créer, supprimer, copier, mais PAS mettre à jour
➢ Conçu pour la lecture en continu, pas un accès aléatoire
➢ Localité des données: traitement des données sur ou près du stockage physique pour réduire la
transmission des données

43
III. Système HDFS

Architecture de HDFS : NameNode File1


a
b
➢ Architecture maître / esclave (Master / Slave architecture) c
d
➢ Master: NameNode
✓ gère l'espace de noms et les métadonnées du système de fichiers
FsImage
EditLog
✓ régule l'accès client aux fichiers
➢ Slave: DataNode
✓ beaucoup par Cluster
a b a c
✓ gère le stockage attaché aux nœuds b a d b
d c c d
✓ rapporte périodiquement l'état à NameNode
DataNodes 44
III. Système HDFS

HDFS – Blocks

➢ HDFS est conçu pour prendre en charge les fichiers très volumineux
➢ Chaque fichier est divisé en blocs (Par défaut : 64 Mo)
➢ Les blocs résident sur différents DataNode physiques

64 MB HDFS blocks

➢ Si un fichier ou un morceau du fichier est inférieur à la taille du bloc, seul l'espace requis est utilisé. Exemple:
un fichier de 210 Mo est divisé en :

64 MB 64 MB 64 MB 18 MB

45
III. Système HDFS

HDFS – Replication

✓ Les blocs de données sont reproduits sur plusieurs nœuds


✓ Le comportement est contrôlé par le facteur de réplication (replication factor), configurable par fichier
✓ La valeur par défaut est de 3 répliques

➢ une réplique sur un nœud dans le rack local


➢ une autre réplique sur un nœud dans un rack
différent
➢ et le dernier sur un nœud différent dans le
deuxième rack

Cela réduit la bande passante du réseau inter-rack,


ce qui améliore les performances d'écriture
46
III. Système HDFS

HDFS – FS shell commands

• copyFromLocal / put
• Copie les fichiers du système de fichiers local dans fs

hadoop fs -copyFromLocal <localsrc> .. <dst>


Ou

hadoop fs -put <localsrc> .. <dst>

47
III. Système HDFS

HDFS – FS shell commands

• copyToLocal / get
• Copier des fichiers de fs dans le système de fichiers local

hadoop fs -copyToLocal <src> <localdst>

Ou

hadoop fs -get <src> <localdst>

48
IV. MAPREDUCE

49
IV. MapReduce

▪ Introduction à MapReduce
▪ Tâches MapReduce (Tasks)
▪ Exemple WordCount
▪ Splits
▪ Exécution
▪ Planification

50
IV. MapReduce

Introduction à MapReduce
▪ Principes :
✓ Les données sont stockées sur l'ensemble du cluster
✓ Les programmes sont transmis aux données et non les données aux programmes
▪ Les données sont stockées sur l'ensemble
10110100 Cluster
du cluster (le DFS) 10100100
1
11100111
11100101
1 3 2
✓ L'ensemble du cluster participe au 00111010
01010010
11001001
2
01010011 4 1 3
système de fichiers Blocks 00010100
10111010
11101011
✓ Les blocs d'un seul fichier sont 3
11011011
01010110 2 4
10010101 4 2 3
00101010
répartis sur le cluster 10101110
1
4
01001101
01110100
✓ Un bloc donné est généralement
Logical File
répliqué pour la résilience 51
IV. MapReduce

Introduction à MapReduce

▪ Modèle de calcul Hadoop


✓ Données stockées dans un système de fichiers distribué couvrant de nombreux ordinateurs peu
coûteux
✓ Apporter la fonction aux données
✓ Distribuer l'application aux ressources de calcul où les données sont stockées

▪ Adaptable à des milliers de nœuds et petabytes de données

52
IV. MapReduce

Introduction à MapReduce

public static class TokenizerMapper Hadoop Data Nodes


extends Mapper<Object,Text,Text,IntWritable> {
private final static IntWritable
one = new IntWritable(1);
private Text word = new Text();
public void map(Object key, Text val, Context
StringTokenizer itr =
new StringTokenizer(val.toString());
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());

}
context.write(word, one); 1. Phase Map
}
} (diviser le travail en petites
public static class IntSumReducer
extends Reducer<Text,IntWritable,Text,IntWrita
private IntWritable result = new IntWritable();
parties)
Distribute map
public void reduce(Text key,
Iterable<IntWritable> val, Context context){
int sum = 0;
for (IntWritable v : val) { tasks to cluster 2. Shuffle
sum += v.get();
(transfert de sortie
. . .

intermédiaire pour le
traitement final)
Application
MapReduce
3. Phase Reduce
Shuffle (Combiner toutes les sorties
à un seul ensemble de
résultats)

Result Set Retourner un seul


ensemble de résultats

53
IV. MapReduce

Introduction à MapReduce

Il y a deux aspects de Hadoop qui sont importants à comprendre:


1. MapReduce est un framework logiciel introduit par Google pour prendre en charge l'informatique
distribuée sur de grands ensembles de données de clusters d'ordinateurs.
2. Le système de fichiers distribués Hadoop (HDFS) est l'endroit où Hadoop stocke ses données. Ce système
de fichiers s'étend sur tous les nœuds d'un cluster. Effectivement, HDFS relie les données qui résident sur
de nombreux noeuds locaux, ce qui fait que les données font partie d'un grand système de fichiers. En
outre, HDFS suppose que les noeuds échoueront, de sorte qu'il réplique un nombre de données donné
sur plusieurs nœuds pour obtenir la fiabilité. Le degré de réplication peut être personnalisé par
l'administrateur ou le programmeur Hadoop. Toutefois, par défaut, il faut reproduire chaque morceau de
données sur 3 noeuds: 2 sur le même rack et 1 sur un rack différent.

54
IV. MapReduce

Introduction à MapReduce

✓ La clé de la compréhension de Hadoop réside dans le modèle de programmation MapReduce.

✓ Il s'agit essentiellement d'une représentation du modèle de traitement de division et de conquête, où


votre entrée est divisée en plusieurs petites pièces (l'étape de MAP) et les noeuds Hadoop traitent ces
pièces en parallèle.

✓ Une fois ces pièces traitées, les résultats sont distillés (dans l'étape de REDUCE) jusqu'à une seule
réponse.

55
IV. MapReduce

Architecture de MapReduce

➢ Architecture maître / esclave


✓ Le maître (JobTracker) unique contrôle l'exécution du travail sur plusieurs esclaves (TaskTrackers).
➢ JobTracker
✓ Accepte les emplois MapReduce soumis par les clients
✓ Pousse la carte (MAP) et réduit les tâches dans les nœuds TaskTracker
✓ Maintient le travail physiquement proche des données
✓ Surveille les tâches et le statut de TaskTracker
➢ TaskTracker
✓ Exécute la carte (MAP) et réduit les tâches
✓ Envoi son statut à JobTracker
✓ Gère le stockage et la transmission de la sortie intermédiaire 56
IV. MapReduce

Architecture de MapReduce

cluster Computer 1

JobTracker

TaskTracker TaskTracker TaskTracker TaskTracker


Computer 2 Computer 3 Computer 4 Computer 5

➢ Si un TaskTracker est très lent, il peut retarder l'ensemble du travail MapReduce, en particulier vers la fin d'un
travail, où tout peut finir par attendre la tâche la plus lente. Avec l'exécution spéculative activée, cependant,
une seule tâche peut être exécutée sur plusieurs noeuds esclaves.

➢ Pour la planification des travaux, par défaut, Hadoop utilise FIFO (First in, First Out) et 5 priorités de
planification optionnelles pour programmer des tâches à partir d'une file d'attente de travail 57
IV. MapReduce

Le modèle de programmation MapReduce

➢ Étape "Map":
✓ L'entrée se divise en morceaux
✓ Les nœuds ouvriers traitent des pièces individuelles en parallèle (sous contrôle global du
nœud JobTracker)
✓ Chaque nœud de travail stocke son résultat dans son système de fichiers local où un réducteur
(Reducer) peut y accéder

➢ Étape "Réduire":
✓ Les données sont agrégées («réduites» par les étapes de la carte) par les nœuds de travail
(sous le contrôle du JobTracker)
✓ Plusieurs tâches de réduction peuvent paralléliser l'agrégation 58
IV. MapReduce

Présentation de MapReduce

Les résultats peuvent


être écrits sur HDFS
ou dans une base de
données

Distributed
FileSystem HDFS, 59
Map Shuffle Reduce
données en blocs
IV. MapReduce

Tâches MapReduce :

 Map

 Shuffle

 Reduce

 Combiner

60
IV. MapReduce

MapReduce – Phase Map

➢ Mappeurs (Mappers)
✓ Généralement un programme relativement petit avec une tâche relativement simple: il est
responsable de lire une partie des données d'entrée, d'interpréter, de filtrer ou de transformer les
données au besoin et enfin de produire un flux de paires <key, value>.
Map Phase
sort Fichier de sortie logique
10110100 1 map copy merge 10110100
10100100
1
11100111 10100100
11100101 11100111
00111010 11100101 To DFS
01010010
sort reduce 00111010
01010010
11001001
2
01010011
2 map 11001001
00010100
10111010 Fichier de sortie logique
11101011
sort merge 10110100
3
11011011
10100100
01010110
10010101
3 map 11100111
00101010 11100101 To DFS
reduce 00111010
10101110
01010010
4
01001101
sort 11001001
01110100
4 map
Fichier
d'entrée 61
logique
IV. MapReduce

MapReduce – Phase Map

➢ Mappeurs (Mappers)
✓ La sortie de chaque mappeur est regroupée localement par clé : key
✓ Un nœud est choisi pour traiter les données pour chaque clé unique
✓ Tout ce mouvement (shuffle) des données est orchestré de manière transparente par MapReduce
Shuffle

sort Fichier de sortie logique


10110100 1 map copy merge 10110100
10100100
1
11100111 10100100
11100101 11100111
00111010 11100101 To DFS
01010010
sort reduce 00111010
01010010
11001001
2
01010011
2 map 11001001
00010100
10111010 Fichier de sortie logique
11101011
sort merge 10110100
3
11011011
10100100
01010110
10010101
3 map 11100111
00101010 11100101 To DFS
reduce 00111010
10101110
01010010
4
01001101
sort 11001001
01110100
4 map
Fichier
d'entrée 62
logique
IV. MapReduce

MapReduce – Phase Map

➢ Réducteurs (Reducers)
✓ Petits programmes (généralement) qui regroupent toutes les valeurs de la clé dont ils sont responsables
✓ Chaque réducteur écrit sa sortie dans son propre fichier

Reduce Phase
sort Fichier de sortie logique
10110100 1 map copy merge 10110100
10100100
1
11100111 10100100
11100101 11100111
00111010 11100101 To DFS
01010010
sort reduce 00111010
01010010
11001001
2
01010011
2 map 11001001
00010100
10111010 Fichier de sortie logique
11101011
sort merge 10110100
3
11011011
10100100
01010110
10010101
3 map 11100111
00101010 11100101 To DFS
reduce 00111010
10101110
01010010
4
01001101
sort 11001001
01110100
4 map
Fichier
d'entrée 63
logique
IV. MapReduce
JobTracker node
Tolérance aux pannes
JobTracker 3 JobTracker fails

heartbeat

TaskTracker 2 TaskTracker fails

child JVM

Child

1 Task fails
MapTask
or
ReduceTask

TaskTracker node 64
IV. MapReduce

Tolérance aux pannes

Task Failure
▪ Si une tâche échoue, la JVM fait rapport à TaskTracker avant sa sortie. La tentative est marquée comme
échec, libérant l'emplacement pour une autre tâche.
▪ Si la tâche se bloque, elle est tuée. JobTracker reprogramme la tâche sur une autre machine.
▪ Si la tâche continue d'échouer, le travail échoue.

65
IV. MapReduce

Tolérance aux pannes

TaskTracker Failure
▪ JobTracker ne reçoit aucun battement de coeur
▪ Supprime TaskTracker du pool de TaskTrackers pour planifier les tâches.

66
IV. MapReduce

Tolérance aux pannes

JobTracker Failure
• Point de défaillance unique. Le travail échoue

67
IV. MapReduce

Planification /Scheduling – FIFO scheduler (avec priorités)

▪ Les travaux MapReduce sont programmés pour s'exécuter dans l'ordre où ils ont été mis en file d'attente,
du premier au dernier, et compte tenu de la priorité de la file d'attente.
▪ Il existe cinq files d'attente prioritaires: très bas, bas, normal, élevé, très élevé.
▪ Les travaux dans la file d'attente de priorité très élevée sont exécutés avant les travaux dans la file d'attente
de priorité élevée, etc.

68
IV. MapReduce

Planification /Scheduling – FIFO scheduler (avec priorités)

Very Low Normal High Very


Low High

J3

J6 J2

J7 J5 J4 J1

69
IV. MapReduce

Planification /Scheduling – Planificateur équitable

▪ Les tâches sont attribuées aux pools (1 pool par utilisateur par défaut)
▪ Un pool d'emplois utilisateur est un nombre de machines à sous assignées pour les tâches de cet utilisateur
▪ Chaque pool obtient le même nombre de créneaux fonctionnels par défaut

Mary soumet
beaucoup d'emplois …
Slot pour une tâche

Pool d’emplois pour 70


Utilisateur Mary
IV. MapReduce

Planification /Scheduling – Planificateur équitable

▪ Plusieurs utilisateurs peuvent exécuter des travaux sur le cluster en même temps
▪ Exemple:
▪ Mary, John, Peter soumettent des emplois qui exigent respectivement 80, 80 et 120 tâches
▪ Disons que le cluster a une limite pour allouer 60 tâches au plus
▪ Comportement par défaut: distribuer une tâche équitablement parmi 3 utilisateurs (chacun obtient 20)
Nombre maximal de tâches pouvant être attribuées dans ce cluster : 60

20 tâches 20 tâches 20 tâches

Mary John Peter 71


Demande: 80 Demande: 80 Demande: 120
IV. MapReduce

Planification /Scheduling – Planificateur équitable

▪ Un partage minimum peut être défini pour un pool


▪ Dans l'exemple précédent, disons que Mary a une part minimale de 40
▪ On attribuera à Mary 40, puis le reste est distribué uniformément à d'autres pools

Nombre maximal de tâches pouvant être attribuées dans ce cluster : 60

40 tâches 10 tâches 10 tâches

Mary John Peter


Demande: 80 Demande: 80 Demande: 120
Partage minimum: 40
72
IV. MapReduce

Planification /Scheduling – Planificateur équitable

▪ Si un utilisateur / travail donné est plus important que d'autres, vous pouvez définir une capacité
minimale (ou un partage minimum) pour un pool donné.
▪ Dans l’exemple, disons que Mary est le gestionnaire d'un département et a la priorité. Elle peut avoir
un pool où une part minimale a été fixée à 40.
▪ Ensuite, lorsque les travaux sont soumis par des utilisateurs différents, Mary obtiendrait son minimum
de 40, alors que les 20 tâches qui restent seraient réparties de manière uniforme sur les autres
utilisateurs, alors John recevrait 10 et Peter 10.

73
IV. MapReduce

SPARK

➢ Apache SPARK est un paradigme similaire à MAP-REDUCE

➢ La phase SHUFFLE de SPARK est totalement en mémoire sans aucun accès HDFS

➢ Apache Spark est nettement plus rapide que MAP-REDUCE !!

➢ Les développeurs de Spark expliquent que le produit peut exécuter des tâches 100 fois plus vite que
MapReduce en cas de traitement en mémoire, et 10 fois plus vite sur disque.

74
IV. MapReduce

Complémentarité SPARK / MapReduce

➢ MAP REDUCE est destiné pour le traitement par lots

➢ alors que SPARK est mieux pour un composant en temps réel

➢ Ils sont complémentaires et généralement utilisés ensemble

75

Vous aimerez peut-être aussi