Hadoop en 5 questions

Hadoop en 5 questions Quel est le principe de fonctionnement de cette infrastructure de traitement massif de données ? Quelles sont ses principales briques ? Quid des premières applications ? Décryptage.

1 - Qu'est ce qu'Hadoop ?

Il s'agit d'un framework Open Source conçu pour réaliser des traitements sur des volumes de données massifs, de l'ordre de plusieurs petaoctets (soit plusieurs milliers de To). Il s'inscrit donc typiquement sur le terrain du Big Data. Géré sous l'égide de la fondation Apache, Hadoop est écrit en Java.

Hadoop a été conçu par Doug Cutting en 2004. Egalement à l'origine du moteur Open Source Nutch (mais également de Lucene), Doug Cutting cherchait une solution pour accroître la taille de l'index de son moteur. Il eut l'idée de créer un framework de gestion de fichiers distribués. Hadoop était né.

Yahoo! en est devenu ensuite le principal contributeur. Le portail utilisait notamment l'infrastructure pour supporter son moteur de recherche historique. Comptant plus de 10 000 clusters Linux en 2008, il s'agissait d'une des premières architectures Hadoop digne de ce nom... avant que Yahoo! ne décide de baser son moteur sur Microsoft Bing en 2009. Continuant à recourir à ce socle pour sa gestion de contenu Web et de ses annonces publicitaires, le groupe décide en 2011 de lancer une société (baptisée Hortonworks) avec pour objectif de proposer une offre de services autour d'Hadoop.


2 - Quel est le principe de fonctionnement de ce framework de traitement intensif ?

Le principe de fonctionnement d'Hadoop est assez simple. L'infrastructure applique le principe bien connu des grilles de calcul, consistant à répartir l'exécution d'un traitement sur plusieurs nœuds, ou grappes de serveurs. Prenons l'exemple d'une liste d'utilisateurs, qui serait celle d'un service sur Internet - par exemple celle des utilisateurs de Yahoo! ou de Facebook (qui utilise également la solution Open Source). Avec, en ligne de mire, l'objectif de réaliser un comptage du nombre d'utilisateurs inscrits à ces réseaux sociaux par exemple.

Dans une logique d'architecture Hadoop, cette liste est découpée en plusieurs parties, chaque partie étant stockée sur une grappe de serveurs différente. Au lieu d'adosser le traitement à une grappe unique, comme c'est le cas pour une architecture plus traditionnelle, cette distribution de l'information permet ainsi de répartir ce traitement sur l'ensemble des nœuds de calcul sur lesquels la liste est répartie.


3 - Quelles en sont les différentes briques ?


Poursuivons notre exemple. Pour mettre en place un tel processus technique de comptage d'abonnés, Hadoop s'adossera à un système de fichiers, baptisé HDFS (pour Hadoop Distributed File System). Il gère la répartition du stockage des données utilisateurs par blocs d'informations sur les différents nœuds. HDFS s'inspire ici d'une technologie utilisée par Google pour ces propres services de Cloud, et connu sous le nom de Google File System (GFS).
 

Les réseaux sociaux Facebook, Twitter et Linkedin repose sur Hadoop

En aval, la distribution et la gestion des calculs est réalisé par MapReduce. Cette technologie, également introduite par Google, permet de combiner deux types de fonction :

 Map qui s'applique sur une liste d'éléments. Dans notre exemple, elle consiste à associer le chiffre 1 à chaque client de la liste,

 Reduce qui calcule, à partir des résultats obtenus - sous forme clés/valeurs -, un résultat consolidé qui, lui, est unique. Toujours dans notre exemple, il s'agira du calcul final du nombre total d'utilisateurs en aditionant tout les chiffres 1 obtenu lors de la première opération.
 

Eventuellement une étape intermédiaire pourra permettre de réaliser des tris, qui permettra notamment de réaliser un comptage par catégorie de clients dans notre exemple. Un orchestrateur de tâches (un scheduler) a été dessiné pour gérer les traitements par lôt en fonction des capacités disponibles à un instant T au sein de la ferme de serveurs.

4 - Au-delà de Yahoo! et Facebook, qui utilise cette solution ?
 
C'est le cas d'autres réseaux sociaux comme Twitter et LinkedIn, avec des besoins d'exécution d'informations en gros volumes. Sur le front du e-commerce, eBay exploite aussi le framework. Il est aussi intégré par un grand nombre de services de Cloud Computing. On compte parmi eux Amazon qui permet de faire tourner Hadoop sur ses services de plate-forme Amazon EC2 et de stockage Amazon S3. Le géant de l'e-commerce a d'ailleurs rendu son propre système de fichiers (S3 filesystem) compatible avec Hadoop.

Récemment, Microsoft a également annoncé la disponibilité d'une pré-version d'Hadoop pour pour son Cloud Azure. Des spécialistes du Cloud, comme Rackspace sont également de la partie (ce dernier a recours à Cloudera, une distribution Hadoop bien connue).

5 - Quelles sont les applications possibles d'Hadoop ?

Au-delà des exemples détaillés plus haut, Hadoop est notamment utilisé dans le domaine de l'analyse de log et de trafic. C'est le cas par exemple chez le spécialiste de l'analyse Web Comscore - qui est passé courant 2011 de la distribution Hadoop Cloudera à celle de MapR - et son système de fichiers maison alternatif à HDFS.

Des acteurs du reporting décisionnel comme Pentaho par exemple supporte également Hadoop, et le mettent en place par exemple sur le terrain de l'analyse de données marketing en gros volumes. D'autres mises en application touchent à l'archivage et l'indexation de données non-structurées (documents, images...). Enfin, Oracle et HP se sont positionnés avec des offres conçus à la fois pour le datamining et l'analyse décisionnelle : Oracle Exadata Database pour le premier et InfoSphere BigInsights Machine pour le second.