Introduction
● Définition du Big Data :
○ Volume : Gérer d'énormes quantités de données.
○ Vélocité : Traiter des flux de données générés rapidement.
○ Variété : Intégrer des formats et sources divers.
○ Véracité : Assurer la qualité et la fiabilité des données.
○ Besoins en traitement et stockage : Infrastructures distribuées et parallèles
pour stocker et traiter efficacement ces données.
● Présentation de MapReduce :
○ Historique : Conçu initialement par Google pour le traitement à grande échelle,
puis popularisé par Hadoop dans le monde open source.
○ Principe de fonctionnement : "Diviser pour mieux traiter" – découpage des
données en fragments traités en parallèle via deux phases principales (Map et
Reduce).
○ Avantages :
■ Scalabilité horizontale (ajout de nœuds).
■ Tolérance aux pannes.
■ Traitement distribué de larges volumes.
○ Inconvénients :
■ Latence élevée pour les traitements interactifs ou itératifs.
■ Complexité dans le débogage et le développement d’algorithmes non
linéaires.
I. Fonctionnement de MapReduce
● Concepts de base :
○ Phase Map : Transformation des données d’entrée en paires clé-valeur.
○ Phase Shuffle & Sort : Regroupement et tri des paires par clé pour préparer
l’agrégation.
○ Phase Reduce : Fusion et traitement des paires regroupées pour obtenir le
résultat final.
● Architecture et exécution d’un job MapReduce :
○ Nœuds maîtres et esclaves : Un nœud maître (coordination) et plusieurs
nœuds esclaves (exécution des tâches).
○ Distribution des tâches et tolérance aux pannes : Répartition automatique
des jobs et redondance pour assurer la continuité en cas de défaillance.
○ Exemple simple : Comptage des occurrences d’un mot dans un corpus – la
phase Map extrait les mots, Shuffle & Sort les regroupe, et Reduce compte les
occurrences.
II. MapReduce et les opérations OLTP, OLAP
● OLTP (Online Transaction Processing) :
○ Caractéristiques : Traitement de transactions en temps réel, faible latence et
haute disponibilité.
○ Cas d’usage : Systèmes bancaires, plateformes e-commerce.
○ Pourquoi MapReduce n’est pas adapté : Conçu pour des traitements batch, il
ne répond pas aux exigences transactionnelles en temps réel.
○ Alternatives : Bases NoSQL telles que HBase ou Cassandra, optimisées pour
les transactions rapides.
● OLAP (Online Analytical Processing) et Big Data :
○ Traitement analytique massif : Analyse et agrégation de très grands volumes
de données.
○ Utilisation de MapReduce : Exécute des calculs parallèles sur des datasets
volumineux pour générer des analyses et rapports (ex. rapports de vente).
○ Cas pratique : Génération de rapports analytiques en agrégeant des données
issues de multiples sources.
III. MapReduce et le Processus ETL (Extract, Transform, Load)
● Définition et importance du processus ETL :
○ Extraction : Récupération de données depuis diverses sources (bases
relationnelles, logs, systèmes NoSQL).
○ Transformation : Nettoyage, agrégation et enrichissement des données pour les
rendre exploitables.
○ Chargement : Insertion des données transformées dans un Data Warehouse ou
un système analytique.
● Utilisation de MapReduce dans ETL :
○ Extraction : Lecture des données directement depuis HDFS (système de fichiers
distribué).
○ Transformation : Application des algorithmes MapReduce pour nettoyer et
transformer les données.
○ Chargement : Stockage des résultats dans HDFS ou transfert vers d’autres
bases analytiques.
● Alternatives modernes : Spark, Hive, Pig :
○ Pourquoi Spark est plus performant : Traitement en mémoire réduisant
significativement la latence et simplifiant le développement de jobs itératifs.
○ Cas d’usage où MapReduce reste pertinent : Traitements batch lourds et
historiques, où la simplicité et la robustesse du paradigme MapReduce suffisent
aux besoins analytiques.