Hadoop, Big Data
22 octobre 2021

Hadoop, le poids lourd du Big Data

Partager l'article

Développé par l’Apache Software Foundation en 2006 suite à une publication de Google deux ans auparavant, Hadoop s’est imposé dans le milieu de la création d’applications distribuées. Entretien avec Alexis Petrillo, Data Engineer.

Pourriez-vous présenter Hadoop ?

Hadoop est un framework libre et open source permettant la création d’applications distribuées pouvant travailler sur des données massives. Le noyau constitué d’une partie stockage nommée HDFS, d’une partie traitement nommée MapReduce et d’un cluster manager nommé YARN. Il est officiellement sorti en 2006 et est inspiré d’une publication de Google publiée en 2004. Hadoop se déploie généralement sur un cluster composé de plusieurs dizaines, centaines ou milliers de machines.

Pourquoi utiliser cet outil, quels intérêts ?

Il permet le stockage et la lecture de données volumineuses et variées. Dans un contexte Big Data, la production de données est croissante et continue, ces données pour être valorisées ne peuvent pas être stockées dans des systèmes relationnels classiques et la programmation impérative (en séquences) ne peut pas assurer les traitements sur une telle volumétrie.

De quelle manière fonctionne Hadoop concrètement ?

HDFS fonctionne sur une architecture maître/esclave : chaque cluster comporte un Namenode et plusieurs Datanode. Hadoop divise les fichiers en blocs de plus petite taille et les réparties sur les différents noeuds (Datanode) du cluster. Lorsque l’on souhaite consulter un fichier dans Hadoop, le Namenode va reconstituer le fichier initial en agrégeant tous les blocs qui ont été répartis. Il offre également une réplication des données, chaque bloc peut être dupliqué plusieurs fois sur différents noeuds, ce qui signifie que si un nœud du cluster tombe en panne, le fichier peut quand même être reconstitué dans son intégralité.

  • MapReduce introduit un nouveau paradigme de programmation, il fournit un cadre générique pour la parallélisation des traitements et se décompose en deux fonctions, la fonction Map et la fonction Reduce.
  • YARN est le gestionnaire de cluster intégré à Hadoop, son rôle est d’allouer dynamiquement des ressources aux applications. Depuis son ajout en 2013, il a permis le déploiement d’applications autre que MapReduce.

Quels sont les avantages et les inconvénients d'Hadoop ?

Un des principaux avantages d’Hadoop est son évolutivité, il est possible d’ajouter ou de retirer des machines aux clusters en fonction des besoins, on parle alors de scalabilité horizontale. Hadoop supporte aussi bien les données structurées que non structurées, il est possible d’y stocker des données textuelles. La parallélisation des traitements permet d’accélérer ceux-ci, dans un contexte Big Data on cherche à produire des analyses le plus possible en temps réel, ce qui en fait donc un outil de choix. Enfin, Hadoop est Open Source lorsqu’il est utilisé en dehors d’une distribution, il n’y a donc pas de coût de licence à supporter.

Au niveau des inconvénients, Hadoop est construit pour les gros volumes de données, une entreprise qui dispose de petits volumes de données ne trouvera aucun bénéfice dans l’utilisation d’Hadoop. Hadoop nécessite aussi une grosse maintenance, et maintenir une plateforme Hadoop nécessitera des compétences spécifiques et du temps. Les composants HDFS, MapReduce et YARN n’assurent souvent pas tous les besoins, il faudra installer d’autres composants (Spark, Zookeeper, Hbase, Hive, Pig, etc.). Cet assemblage de composants nécessite une plateforme en constante mise à jour.

 

Nos dernières formations Code

  • Nouveauté
    Construire une API REST avec Symfony
    Découvrir
    Apprendre à créer une API REST avec le framework Symfony
    5h20 5 leçons
  • Nouveauté
    Apprendre Symfony
    Découvrir
    1. Développer la partie front-end d'une application web ou web mobile en intégrant les recommandations de sécurité Maquetter une application. Réaliser une interface utilisateur web statique et adaptable. Développer une interface utilisateur web dynamique. Réaliser une interface utilisateur avec une solution de gestion de contenu ou e-commerce. 2. Développer la partie back-end d'une application web ou web mobile en intégrant les recommandations de sécurité Créer une base de données. Développer les composants d'accès aux données. Développer la partie back-end d'une application web ou web mobile. Elaborer et mettre en œuvre des composants dans une application de gestion de contenu ou e-commerce.
    22h00 17 leçons
  • Nouveauté
    Maîtrisez Kotlin
    Découvrir
    Apprendre à Développer des applications Android avec Kotlin à travers 2 ateliers pratiques. Cette formation fait partie d'un bloc de compétence dont l'objectif est d'apprendre à développer la partie front-end d’une application web ou web mobile en intégrant les recommandations de sécurité
    25h20 20 leçons
  • Apprendre les fondamentaux d'Hadoop
    Découvrir
    Apprendre à utiliser les fonctionnalités de base d’Hadoop
    0h25
  • Apprendre Airtable : Les fondamentaux
    Découvrir
    Être capable de créer et modifier des bases de données avec Airtable.
    2h26
  • Maîtriser Wordpress : Création d'un site avec Elementor 2021
    Découvrir
    Être capable de créer un site internet de A à Z en utilisant le CMS Wordpress avec le constructeur Elementor 2021.
    10h02 4,20 / 5
Partager l'article