Hadoop, le poids lourd du Big Data
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.