Remove ads
logiciel informatique De Wikipédia, l'encyclopédie libre
Hadoop est un framework libre et open source écrit en Java destiné à faciliter la création d'applications distribuées (au niveau du stockage des données et de leur traitement) et échelonnables (scalables) permettant aux applications de travailler avec des milliers de nœuds et des pétaoctets de données. Ainsi chaque nœud est constitué de machines standard regroupées en grappe. Tous les modules de Hadoop sont conçus selon l'idée que les pannes matérielles sont fréquentes et qu'en conséquence elles doivent être gérées automatiquement par le framework.
Hadoop a été inspiré par la publication de MapReduce, GoogleFS et BigTable de Google. Hadoop a été créé par Doug Cutting et fait partie des projets de la fondation logicielle Apache depuis 2009.
Le noyau d'Hadoop est constitué d'une partie de stockage : HDFS (Hadoop Distributed File System), et d'une partie de traitement appelée MapReduce. Hadoop fractionne les fichiers en gros blocs et les distribue à travers les nœuds du cluster. Pour traiter les données, il transfère le code à chaque nœud et chaque nœud traite les données dont il dispose. Cela permet de traiter l'ensemble des données plus rapidement et plus efficacement que dans une architecture supercalculateur plus classique[réf. nécessaire] qui repose sur un système de fichiers parallèle où les calculs et les données sont distribués via les réseaux à grande vitesse.
Le framework Hadoop de base se compose des modules suivants :
Le terme Hadoop se réfère non seulement aux modules de base ci-dessus, mais aussi à son écosystème et à l'ensemble des logiciels qui viennent s'y connecter comme Apache Pig, Apache Hive, Apache HBase, Apache Phoenix, Apache Spark, Apache ZooKeeper, Apache Impala, Apache Flume, Apache Sqoop, Apache Oozie, Apache Storm.
En 2004[2], Google publie un article présentant son algorithme basé sur des opérations analytiques à grande échelle sur un grand cluster de serveurs, le MapReduce, ainsi que son système de fichier en cluster, le GoogleFS. Doug Cutting, qui travaille à cette époque sur le développement de Apache Lucene et rencontre des problèmes similaires à ceux de la firme de Mountain View, décide alors de reprendre les concepts décrits dans l'article pour développer sa propre version des outils en version open source, qui deviendra le projet Hadoop.
Il s'inspire du doudou de son fils de cinq ans, un éléphant jaune, pour le logo ainsi que pour le nom de ce nouveau framework Java[3].
En 2006, Doug Cutting rejoint Yahoo! avec le projet Nutch et les idées basées sur les premiers travaux de Google en termes de traitement et de stockage de données distribuées[4].
En 2008, Yahoo proposa Hadoop sous la forme d’un projet open source.
En 2011[5], Hadoop en sa version 1.0.0 voit le jour; en date du .
Le , la communauté open source lance Hadoop 2.0[5] celle-ci fut proposée au public à partir de novembre 2012 dans le cadre du projet Apache, sponsorisé par la Apache Software Foundation[4]. La révolution majeure a été l'ajout de la couche YARN dans la structure de Hadoop.
À partir de , la version 3.0.0-alpha1 est rendue disponible[5].
Version | Date de sortie initiale | Dernière version | Date de sortie |
---|---|---|---|
0.10 | 0.10.1 | 11 janvier 2007 | |
0.11 | 0.11.2 | 16 février 2007 | |
0.12 | 2 mars 2007 | 0.12.3 | 6 avril 2007 |
0.13 | 4 juin 2007 | 0.13.1 | 23 juillet 2007 |
0.14 | 4 septembre 2007 | 0.14.4 | 26 novembre 2007 |
0.15 | 29 octobre 2007 | 0.15.3 | 18 janvier 2008 |
0.16 | 7 février 2008 | 0.16.4 | 5 mai 2008 |
0.17 | 20 mai 2008 | 0.17.2 | 19 août 2008 |
0.18 | 22 août 2008 | 0.18.3 | 29 janvier 2009 |
0.19 | 21 novembre 2008 | 0.19.2 | 23 juillet 2009 |
0.20 | 22 avril 2009 | 0.20.205.0 | 17 octobre 2011 |
0.21 | 11 mai 2011 | 0.21.0 | |
0.22 | 10 décembre 2011 | 0.22.0 | |
0.23 | 11 novembre 2011 | 0.23.11 | 27 juin 2014 |
1.0 | 27 décembre 2011 | 1.0.4 | 2012-10-12 |
1.1 | 13 octobre 2012 | 1.1.2 | 15 février 2013 |
1.2 | 13 mai 2013 | 1.2.1 | 1er août 2013 |
2.0 | 23 mai 2012 | 2.0.6-alpha | 23 août 2013 |
2.1 | 25 août 2013 | 2.1.1-beta | 23 septembre 2013 |
2.2 | 11 décembre 2013 | 2.2.0 | |
2.3 | 20 février 2014 | 2.3.0 | |
2.4 | 7 avril 2014 | 2.4.1 | 30 juin 2014 |
2.5 | 11 août 2014 | 2.5.2 | 19 novembre 2014 |
2.6 | 18 novembre 2014 | 2.6.5 | 9 octobre 2016 |
2.7 | 21 avril 2015 | 2.7.7 | 31 mai 2018 |
2.8 | 22 mars 2017 | 2.8.5 | 15 septembre 2018 |
2.9 | 17 décembre 2017 | 2.9.2 | 19 novembre 2018 |
2.10 | 29 octobre 2019 | 2.10.2 | 31 mai 2022[6] |
3.0 | 13 décembre 2017[7] | 3.0.3 | 31 mai 2018[8] |
3.1 | 6 avril 2018 | 3.1.4 | 3 août 2020[9] |
3.2 | 16 janvier 2019 | 3.2.4 | 22 juillet 2022[10] |
3.3 | 14 juillet 2020 | 3.3.6 | 23 juin 2023[11] |
3.4 | 3.4.0-SNAPSHOT | 25 octobre 2023[12] | |
Légende : Ancienne version Ancienne version, toujours prise en charge Dernière version stable Dernière version avancée Version future |
Le HDFS est un système de fichiers distribué, extensible et portable développé par Hadoop à partir du GoogleFS. Écrit en Java, il a été conçu pour stocker de très gros volumes de données sur un grand nombre de machines équipées de disques durs banalisés. Il permet l'abstraction de l'architecture physique de stockage, afin de manipuler un système de fichiers distribué comme s'il s'agissait d'un disque dur unique.
Une architecture de machines HDFS (aussi appelée cluster HDFS) repose sur deux types de composants majeurs :
Chaque DataNode sert de bloc de données sur le réseau en utilisant un protocole spécifique au HDFS. Le système de fichiers utilise la couche TCP/IP pour la communication. Les clients utilisent le Remote Procedure Call pour communiquer entre eux. Le HDFS stocke les fichiers de grande taille sur plusieurs machines. Il réalise la fiabilité en répliquant les données sur plusieurs hôtes et par conséquent ne nécessite pas de stockage RAID sur les hôtes. Avec la valeur par défaut de réplication, les données sont stockées sur trois nœuds : deux sur le même support et l'autre sur un support différent. Les DataNodes peuvent communiquer entre eux afin de rééquilibrer les données et de garder un niveau de réplication des données élevé.
Le HDFS n'est pas entièrement conforme aux spécifications POSIX, en effet les exigences relatives à un système de fichiers POSIX diffèrent des objectifs cibles pour une application Hadoop. Le compromis de ne pas avoir un système de fichiers totalement compatible POSIX permet d'accroître les performances du débit de données.
Le HDFS a récemment amélioré ses capacités de haute disponibilité, ce qui permet désormais au serveur de métadonnées principal d'être basculé manuellement sur une sauvegarde en cas d'échec (le basculement automatique est en cours d'élaboration). Les NameNodes étant le point unique pour le stockage et la gestion des métadonnées, ils peuvent être un goulot d'étranglement pour soutenir un grand nombre de fichiers, notamment lorsque ceux-ci sont de petite taille. En acceptant des espaces de noms multiples desservis par des NameNodes séparés, le HDFS limite ce problème.
Hadoop dispose d'une implémentation complète du concept du MapReduce.
HBase est une base de données distribuée disposant d'un stockage structuré pour les grandes tables.
Comme BigTable, HBase est une base de données orientée colonnes.
ZooKeeper est un logiciel de gestion de configuration pour systèmes distribués, basé sur le logiciel Chubby développé par Google. ZooKeeper est utilisé entre autres pour l'implémentation de HBase.
Hive est un logiciel d'analyse de données permettant d'utiliser Hadoop avec une syntaxe proche du SQL. Hive a été initialement développé par Facebook.
Pig est un logiciel d'analyse de données comparable à Hive, mais qui utilise le langage Pig Latin. Pig a été initialement développé par Yahoo!.
Plusieurs grands noms de l'informatique ont déclaré utiliser Hadoop, comme Facebook, Yahoo, Microsoft[13]. Yahoo exploite le plus grand cluster Hadoop au monde, avec plus de 100 000 CPU et 40 000 machines dédiées à cette technologie[14].
WikiTrends est un service gratuit d'analyse d'audience de l'encyclopédie Wikipédia lancé en . L'application, utilisant notamment Hadoop, permet de quantifier les thématiques les plus recherchées par les utilisateurs sur l'encyclopédie Wikipédia, au travers d'une interface de visualisation graphique[15],[16],[17].
Hadoop peut être déployé dans un datacenter traditionnel mais aussi au travers du cloud[18]. Le cloud permet aux organisations de déployer Hadoop sans acquisition de matériel ou d'expertise spécifique.
Azure HDInsight[19] est un service qui déploie Hadoop sur Microsoft Azure. HDInsight utilise Hortonworks Data Platform (HDP). HDInsight permet la programmation d'extensions en .NET (en plus du Java). HDInsight prend également en charge la création de clusters Hadoop utilisant Ubuntu.
En utilisant HDInsight dans le cloud, les entreprises peuvent exécuter le nombre de nœuds qu'elles souhaitent ; elles seront facturées en fonction du calcul et du stockage qui est utilisé. Les implémentations HDP peuvent également déplacer des données à partir d'un centre de données local vers le cloud pour la sauvegarde, le développement, les tests et les scénarios de rupture. Il est également possible d'exécuter des clusters HDP sur des machines virtuelles Azure.
Il est possible d'exécuter Hadoop sur Amazon Elastic Compute Cloud (EC2) et sur Amazon Simple Storage Service (S3). À titre d'exemple, le New York Times a utilisé 100 instances Amazon EC2 et une application d'Hadoop pour traiter 4 To d'images raw TIFF (stockées dans Amazon S3) dans 11 millions de fichiers PDF.
Hadoop est notamment distribué par quatre acteurs qui proposent des services de formation et un support commercial, mais également des fonctions supplémentaires :
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.