Inovia Blog

L’actualité des technologies innovantes

Hadoop, une introduction - 3/3

Par Kadda SAHNINE

Publié le | 6 janvier 2010 |

elephant_hadoop.jpegDans ce troisième et dernier volet de la série, nous dresserons un panorama de l’écosystème Hadoop. La lecture des deux premiers billets est un préalable utile.

Avant d’entrer dans le vif du sujet, répondons à la question suivante : dans quels cas ne pas utiliser Hadoop ?
Hadoop n’est fondamentalement pas prévu pour traiter en temps réel un flux de données arrivant au fil de l’eau. Rappelons que sa vocation première est d’implémenter des traitements batch.
Par ailleurs, son utilisation n’a évidemment pas de sens si le volume de données à traiter est faible.
Ces remarques liminaires sont évidemment valables pour les projets que nous avons choisi de présenter dans cet article.

Hadoop est un environnement d’exécution distribué, performant et scalable, dont la vocation est de traiter des volumes de données considérables. Parce que ce système est de portée générale, il a suscité le développement d’un vaste écosystème constitué d’autres projets spécialisés dans un domaine particulier parmi lesquels on compte les entrepôts de données (data warehouse), le décisionnel (business intelligence), le suivi applicatif (monitoring) ou la persistance de données.

HBase et les bases de données non relationnelles

hbase_small.gifL’année 2009 a été marquée par la montée en puissance du mouvement NoSQL (Not Only SQL), une tendance réactionnaire, au sens premier du terme, visant à promouvoir des solutions de persistance agiles et non relationnelles répondant avant tout à l’exigence de scalabilité (CouchDB, SimpleDB, BigTable). A juste titre, les bases de données relationnelles sont considérées comme des points de contension majeurs des architectures web dont la vocation est d’être scalable.

HBase est une base de données orientée colonne s’inscrivant dans cette mouvance et dont le design s’inspire de BigTable (Google). Elle est capable de gérer des jeux de données extrêmement importants, de l’ordre de plusieurs TB. Son modèle d’accès est celui d’une table associative (Hashtable) fonctionnant par couples clé/valeur. Il n’y a pas de support transactionnel élaboré.

S’exécutant au dessus de Hadoop, les opérations de recherche, tri ou requête sont convertis en jobs Map/Reduce dont les jeux de données en entrée sont constitués par les enregistrements de la base.

HBase est aujourd’hui concurrencé par Cassandra, un projet initialement développé par Facebook mais désormais porté par la fondation Apache, dont on trouvera les références à la fin de cet article.

Hive et les entrepôts de données (data warehouses)

hive_logo_medium.jpgLa société Netezza, l’éditeur américain spécialisé dans les solutions packagées de data warehouse, pourrait avoir du soucis à se faire. En effet, ses offres très coûteuses pourraient être déstabilisées par le projet Hive, un nouvel entrant propulsé par Hadoop.

Hive est un data warehouse libre implémentant un langage de requête orienté SQL (HiveQL) dont la mise en œuvre se traduit par l’exécution de jobs Map/Reduce orchestrés par Hadoop.

Hive opère directement sur des fichiers bruts et hétérogènes, distribués sur le système de fichier HDFS. Il peut s’agir du résultat issu de requêtes en base de données, d’enregistrements au format csv ou de fichiers logs, fussent ils compressés.

Facebook a sélectionné Hive comme pierre angulaire de son propre entrepôt de données (700 TB). Nous vous invitons à consulter leur publication relatant leur expérience d’intégrateur et de contributeur :

L’adoption de Hive par de grands acteurs du Web, dont Facebook, pourrait signer le déclin des data warehouses propriétaires.

HadoopDB ou comment réconcilier le mouvement NoSQL et les bases de données relationnelles

HadoopDB est une solution de persistance hybride combinant l’algorithme Map/Reduce aux bases de données relationnelles. Issu des travaux de l’université de Yale, HadoopDB consiste à substituer le système de fichier distribué HDFS par un cluster Hadoop dont les nœuds hébergent une base de données relationnelle (PostgreSQL par défaut bien que le support de MySQL ait été confirmé par le Pr Abadi, leader et co-auteur du projet).
Le schéma ci-après présente l’ensemble de la chaîne de liaison depuis l’analyse de la requête SQL par HadoopDB jusqu’à sa conversion en jobs Map/Reduce et leur répartition :
hadoopdb_architecture.png

Les performances annoncées s’approchent des systèmes de bases de données parallèles comme Teradata ou Vertica, des solutions coûteuses et dont la scalabilité linéaire vantée par leurs éditeurs est très contestée.

Pour aller plus loin, nous vous recommandons la lecture de cette publication technique rédigée par les promoteurs du projet.

D’autres projets à suivre

Cette liste n’est évidemment pas exhaustive :

  • Cassandra, une base de données orientée colonne développée sous l’impulsion de Facebook. Ses performances dépasseraient celles de HBase.
  • Scribe, un agrégateur temps-réel de logs issues de plusieurs serveurs. Ce projet est développé par une équipe de Facebook.
  • Chukwa, un système de collecte et d’analyse de traces applicatives

Nous ne pouvons pas clôturer cet article sans mentionner la société Cloudera, un des acteurs les plus impliqués dans la promotion et le développement de projets Hadoop.
Entre autres initiatives, Cloudera propose :

  • un outil accessible en ligne facilitant la configuration d’un cluster Hadoop (Note: à ce jour, l’outil fait l’objet d’une refonte)
  • des distributions Hadoop au format RPM ou Debian
  • des images AMI pour un déploiement sur le cloud d’Amazon (EC2)

Enfin, leur instructif Hadoop Ecosystem Tour finira de convaincre les plus sceptiques d’entre vous.

Articles en relation :

Abonnez vous !
  • RSS
  • Yahoo
  • Netvibes

Suivez l'auteur sur Twitter !
  • Suivre sur Twitter

A propos de l'auteur

Kadda SAHNINE
Architecte technique Java EE
#JavaEE #Linux #vim addict #OpenSoftware #OpenHardware
Voir le profil de Kadda Sahnine sur LinkedIn

Flux RSS

Rechercher

Administration