Hadoop

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Hadoop
Image illustrative de l'article Hadoop
Logo

Développeur Apache Software Foundation
Environnements Multiplate-forme, principalement POSIX.
Type Architecture distribuée
Licence Licence Apache
Site web hadoop.apache.org

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 partie des projets de la fondation logicielle Apache depuis 2009.

Historique[modifier | modifier le code]

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 de 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 de 3 ans, un éléphant jaune, pour le logo ainsi que pour le nom de ce nouveau framework Java.

Architecture[modifier | modifier le code]

Hadoop Distributed File System[modifier | modifier le code]

Article connexe : Google File System.

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 (nœud de noms) : 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.

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 | modifier le code]

Article détaillé : MapReduce.

Hadoop dispose d'une implémentation complète de l'algorithme de MapReduce.

HBase[modifier | modifier le code]

Article détaillé : HBase.

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 | modifier le code]

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 | modifier le code]

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 | modifier le code]

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 | modifier le code]

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 | modifier le code]

Hadoop est distribuée par trois grands acteurs qui proposent des services de formation et un support commercial, mais également des fonctions supplémentaires :

  • Cloudera[1] - Première distribution historique d'Hadoop intégrant les packages classiques et certains développements propriétaires comme Impala (en). Service de formation et de support. À l'origine du Projet Impala. Pas présent en France en 2013.
  • Hortonworks - Service de formation et de support. Pas présent en France en 2013.
  • MapR Technologies - MapR a développé un système de fichier pour Hadoop palliant les limites du HDFS. MapR a également développé des technologies permettant la suppression du name node qui est un point de contentions dans l'architecture Hadoop. Un cluster Hadoop MapR est donc hautement disponible et permet également d’être intégré dans les politiques de sauvegarde des données des entreprises. Un cluster MapR est vu sur le réseau des clients comme un NAS partageant les données en NFS avec des droits POSIX. À l'origine du projet Drill. Ouverture des activités européennes en janvier 2013. Bureau Français depuis mars 2013

Notes et références[modifier | modifier le code]

  1. a et b Liste d'entreprises déclarant utiliser Hadoop
  2. Antoine Crochet-Damais, Les technologies Open Source choisies par les géants du Web. Publié sur journaldunet.com le 04 janvier 2013.

Liens externes[modifier | modifier le code]