Votre progression

Continuez pour débloquer la suite !
0 / 0 étapes complétées 0
%

Syllabus

  1. Description

  2. Objectifs

  3. Validations de compétences

  4. Public cible

    Aucun public cible spécifié pour ce module.

  5. Besoins techniques

  6. Prérequis

    • Aucun prérequis
  7. Niveau

  8. Historique du module

    Aucune action enregistrée
  1. Introduction à Hadoop & HDFS

    Hadoop est un framework open-source né chez Yahoo! en 2006, conçu pour stocker et traiter d’immenses volumes de données sur des grappes de serveurs standards. Il a révolutionné la gestion du Big Data en rendant possible l’analyse de pétaoctets de données à moindre coût.

    • Enjeux : traiter des données trop volumineuses ou variées pour les bases classiques, assurer la tolérance aux pannes, réduire les coûts d’infrastructure.
    • Écosystème : Hadoop n’est pas seul ! Il s’intègre avec Hive, Pig, Spark, HBase, etc.
    • Composants principaux :
      • HDFS : système de fichiers distribué, cœur du stockage.
      • MapReduce : moteur de traitement batch distribué.
      • YARN : gestionnaire de ressources et d’exécution des jobs.

    Hadoop a posé les bases de la data moderne et reste utilisé pour l’archivage, le batch analytique et comme socle de clusters Big Data.

  2. Architecture Hadoop & HDFS

    1. HDFS (Hadoop Distributed File System)

      • Fonctionnement : HDFS découpe les fichiers en blocs (souvent 128 Mo) répartis sur plusieurs serveurs (DataNodes).
      • NameNode : serveur maître, garde la « carte » du système (emplacement des blocs, arborescence).
      • DataNode : stockent physiquement les blocs de données, exécutent les ordres du NameNode.
      • Réplication : chaque bloc est copié (souvent 3 fois) pour assurer la tolérance aux pannes.
      • Tolérance aux pannes : si un DataNode tombe, les données restent disponibles via les copies.

      Exemple : Un fichier de 1 Go est découpé en 8 blocs de 128 Mo, chaque bloc est stocké sur 3 DataNodes différents. Si l’un tombe, le système continue de fonctionner sans perte.

    2. MapReduce

      • Principe : séparer le traitement en deux phases : Map (pré-traitement, découpage) puis Reduce (agrégation, synthèse).
      • Étapes : chaque nœud traite une partie des données (Map), puis les résultats sont regroupés et agrégés (Reduce).
      • Exemples : WordCount, calcul de statistiques, indexation de pages web.

      Exemple : Pour compter les mots d’un corpus, chaque Map compte les mots dans un bloc, puis Reduce additionne les résultats de chaque Map.

    3. YARN

      • Gestionnaire de ressources : YARN (« Yet Another Resource Negotiator ») attribue les ressources (CPU, mémoire) aux différents jobs.
      • Scheduling : permet de faire tourner plusieurs jobs Hadoop, Spark ou autres sur le même cluster.
      • Interopérabilité : Spark, Hive, etc., peuvent utiliser YARN pour s’exécuter sur le cluster Hadoop.

      Exemple : Une entreprise lance en parallèle un job MapReduce, une requête Hive et un pipeline Spark : YARN répartit les ressources pour optimiser l’utilisation du cluster.

  3. Cas d’usage typiques

    • Stockage de données massives
    • Traitement batch distribué
    • Archivage et sauvegarde
  4. Exemples pratiques

    1. Commandes HDFS de base

    • hdfs dfs -mkdir /data/mon_dossier : créer un dossier sur HDFS
    • hdfs dfs -put fichier.txt /data/mon_dossier/ : uploader un fichier local vers HDFS
    • hdfs dfs -ls /data/mon_dossier : lister les fichiers d’un dossier
    • hdfs dfs -cat /data/mon_dossier/fichier.txt : afficher le contenu d’un fichier

    Ces commandes permettent de manipuler HDFS en ligne de commande, comme un système de fichiers classique mais distribué.

    2. Exemple WordCount en pseudo-code MapReduce

    // MAP : pour chaque ligne du texte
    pour chaque mot dans la ligne
        émettre (mot, 1)
    // REDUCE : pour chaque mot unique
    somme = 0
    pour chaque valeur associée au mot
        somme += valeur
    émettre (mot, somme)
    

    Ce schéma est à la base de nombreux traitements distribués sur Hadoop.

    3. Exemple WordCount Java (simplifié)

    public static class Map 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 value, Context context) throws IOException, InterruptedException {
            StringTokenizer itr = new StringTokenizer(value.toString());
            while (itr.hasMoreTokens()) {
                word.set(itr.nextToken());
                context.write(word, one);
            }
        }
    }
    
    public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> {
        public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
            int sum = 0;
            for (IntWritable val : values) {
                sum += val.get();
            }
            context.write(key, new IntWritable(sum));
        }
    }
    
    • Mapper : découpe chaque ligne en mots, émet (mot, 1)
    • Reducer : additionne les valeurs pour chaque mot

    Ce programme Java est typique des premiers jobs MapReduce sur Hadoop.

  5. Mini-lab Hadoop : Manipulation HDFS & MapReduce

    1. Préparation
      Télécharge le fichier alice.txt (texte du livre « Alice au pays des merveilles ») depuis Project Gutenberg et place-le dans ton dossier local.
    2. Upload sur HDFS
      hdfs dfs -mkdir /data/alice
      hdfs dfs -put alice.txt /data/alice/
      Vérifie la présence du fichier :
      hdfs dfs -ls /data/alice
    3. Lancer le job WordCount MapReduce
      hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar wordcount /data/alice/alice.txt /data/alice/output
      (Adapte le chemin du jar si besoin)
    4. Analyser les résultats
      hdfs dfs -ls /data/alice/output
      hdfs dfs -cat /data/alice/output/part-r-00000 | head -20
      (Affiche les 20 premiers mots comptés)
    5. Questions de réflexion
      • Quels sont les mots les plus fréquents dans le texte ?
      • Comment le système assure-t-il la tolérance aux pannes si un DataNode tombe pendant le job ?
      • Comment adapterais-tu le script pour ignorer la casse ou les mots très courts (<3 caractères) ?

    Ce mini-lab permet de manipuler HDFS, de lancer un vrai job MapReduce, et de comprendre la logique du traitement distribué sur un cluster Hadoop.

    Approfondissements Hadoop

    • Tuning & performance :
      • Taille des blocs : augmenter (256 Mo, 512 Mo) pour de très gros fichiers, diminuer pour de nombreux petits fichiers.
      • Facteur de réplication : adapter selon la criticité (3 par défaut, plus pour la sécurité, moins pour économiser l’espace).
      • Mémoire et parallélisme : ajuster les paramètres YARN (RAM, CPU par conteneur) pour optimiser l’utilisation du cluster.
    • Sécurité :
      • Authentification Kerberos : protège l’accès au cluster.
      • Chiffrement : possible au repos (HDFS) et en transit (SSL/TLS).
      • Contrôle d’accès : permissions POSIX, gestion fine par utilisateur/groupe.
    • Formats avancés :
      • Parquet, ORC : formats colonnes, idéaux pour l’analytique (compression, lecture rapide de colonnes spécifiques).
      • Avro : format sérialisé, adapté à l’échange de données entre systèmes.
    • Interopérabilité :
      • Spark : lit/écrit nativement sur HDFS, permet des traitements in-memory sur les données stockées.
      • Hive : datawarehouse SQL sur HDFS, facilite les requêtes analytiques.
    • Pour aller plus loin :

    Quiz et mini-lab


    1. A. Calcul distribué
      B. Stockage distribué tolérant aux pannes
      C. Visualisation des données

    2. A. NameNode
      B. YARN
      C. DataNode

    3. A. Parquet
      B. CSV
      C. DOCX
      D. Avro

    4. A. Calcul en mémoire uniquement
      B. Séparer traitement (Map) et agrégation (Reduce)
      C. Stockage de graphes

    5. A. Traitement batch de gros volumes
      B. Calcul scientifique en temps réel
      C. Gestion de bases relationnelles classiques

Exercices, examens et projets

Exercice

Atelier Big Data

Construire un petit pipeline de données et documenter ses choix.

Obligatoire Consulter
Examen

Examen Big Data

Évaluer la compréhension de l'architecture et des outils.

Obligatoire Consulter
Projet

Projet fil rouge Big Data

Livrer un pipeline reproductible avec ingestion, stockage et restitution.

Livrables :

  • Pipeline
  • Schéma de données
  • Documentation
Obligatoire Consulter