Hadoop
|
|
Cet article est une ébauche concernant un logiciel libre.
Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.
|
| Hadoop | |
Logo |
|
|
|
|
| Développeur | Apache Software Foundation |
|---|---|
| Environnements | Multiplate-forme, principalement POSIX. |
| Type | Architecture distribuée |
| Licence | Licence Apache |
| Site web | hadoop.apache.org |
| modifier |
|
Hadoop est un framework Java libre destiné à faciliter la création d'applications distribuées et échelonnables (scalables). Il permet aux applications de travailler avec des milliers de nœuds et des pétaoctets de données. Hadoop a été inspiré par les publications MapReduce, GoogleFS et BigTable de Google.
Hadoop a été créé par Doug Cutting et fait, en 2009, partie des projets de la fondation logicielle Apache.
Sommaire |
Historique [modifier]
En 2004, Google a publié 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 travaillait à cette époque sur le développement de Apache Lucene et a été confronté à des problèmes similaires à ceux rencontrés par la firme du Mountain View. Il décida alors de reprendre les concepts décrits dans l'article pour développer sa propre version des outils en version Open Source, c'est ce qui deviendra le projet Hadoop.
Il s'inspira du doudou de son fils, un éléphant jaune, pour le logo de ce nouveau framework Java.
Architecture [modifier]
Hadoop Distributed File System [modifier]
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 :
- NameNode (nom de nœud) : ce composant gère l'espace de noms, l'arborescence du système de fichiers et les métadonnées des fichiers et des répertoires. Il centralise la localisation des blocs de données répartis dans le cluster. Il est unique mais dispose d'une instance secondaire qui gère l'historique des modifications dans le système de fichiers (rôle de backup). Ce NameNode secondaire permet la continuité du fonctionnement du cluster Hadoop en cas de panne du NameNode d'origine.
- DataNode (nœud de données) : ce composant stocke et restitue les blocs de données. Lors du processus de lecture d'un fichier, le NameNode est interrogé pour localiser l'ensemble des blocs de données. Pour chacun d'entre-eux, le NameNode renvoie l'adresse du DataNode le plus accessible, c'est-à-dire le DataNode qui dispose de la plus grande bande passante. Les DataNodes communiquent de manière périodique au NameNode la liste des blocs de données qu'ils hébergent. Si certains de ces blocs ne sont pas assez répliqués dans le cluster, l'écriture de ces blocs s'effectue en cascade par copie sur d'autres DataNodes.
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.
MapReduce [modifier]
Hadoop dispose d'une implémentation complète de l'algorithme de MapReduce.
HBase [modifier]
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 [modifier]
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 [modifier]
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 [modifier]
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!.
Utilisations [modifier]
Plusieurs grands noms de l'informatique ont déclaré utiliser Hadoop, comme Facebook, Yahoo ou Microsoft[1]. Depuis 2010, Facebook exploite le plus grand cluster Hadoop au monde[2].
Distributions [modifier]
Une version d'Hadoop est également distribuée par Cloudera, qui propose un service de formation et un support commercial[3].
Solutions [modifier]
La société Hurence propose des solutions d'analyse de données sur Hadoop et HBase, ainsi qu'un service de formation et un support commercial[4].
Notes et références [modifier]
- Liste d'entreprises déclarant utiliser Hadoop
- Antoine Crochet-Damais, Les technologies Open Source choisies par les géants du Web. Publié sur journaldunet.com le 04 janvier 2013.
- Site officiel de Cloudera, présentant son service de formation et de support
- Site officiel de Hurence, présentant son offre Big Data Analytics sur Hadoop
Liens externes [modifier]
- (en) Site officiel de Hadoop
- (en) Mention de Nutch et de Hadoop dans un article sur Google intitulé How Google Works
- (fr) A la découverte d'Hadoop
- (fr) Hadoop, une introduction
- (fr) Le framework Apache Hadoop
- (fr) Le projet Hadoop de la fondation Apache