Inovia Blog

L’actualité des technologies innovantes

Hadoop, une introduction - 3/3

Par Kadda SAHNINE

Publié le | 6 janvier 2010 | 3 Commentaires

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 autre projet de l’écosystème Hadoop développé par Facebook et 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 :

Ample SDK, un framework RIA à suivre

Par Kadda SAHNINE

Publié le | 4 janvier 2010 | 3 Commentaires

Ample SDKPour une raison assez obscure, l’annonce de la distribution sous licence libre du framework RIA Ample SDK est passée quasiment inaperçue.
Obscure en effet car il nous semble que Ample SDK propose une approche de développement de clients riches très innovante car totalement ouverte sur les standards, ce qui est en soit une performance sur le segment déjà bien encombré des frameworks RIA.

Un framework résolument tourné vers les standards

Ample SDK est un framework RIA entièrement écrit en Javascript, ce qui le rend agnostique vis-à-vis de la plateforme technologique côté serveur.

Les principes de développement d’une application résident dans la séparation des trois ressources constitutives d’un écran :

  • l’interface utilisateur
  • la logique applicative
  • la décoration graphique

L’interface utilisateur

Elle est décrite par approche déclarative orientée XML. Contrairement aux frameworks privilégiant cette approche, Ample SDK n’impose pas un langage de description particulier mais propose un choix parmi les standards du développement web :

  • XUL (XML User Interface Language), le langage de description d’interface promu par Mozilla
  • HTML5
  • SVG 1.1
  • XHTML 1.1
  • XForms 1.1

On verra plus loin que cette liste n’est pas limitative.
Ce qui est particulièrement remarquable, c’est que l’ensemble de ces technologies sont à la portée d’une grande variété de navigateurs, dont Internet Explorer 5.5 ! Ample SDK, tel un chaînon manquant, généralise le déploiement de standards (XUL, HTML5, etc.) sur la quasi intégralité des navigateurs du marché.

Voici un exemple d’implémentation en XUL :

<script type=’application/ample+xml’ xmlns:xul=’http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul’>
 <xul:tabbox xmlns:xul=’http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul’>
    <xul:tabs>
        <xul:tab label=’checkbox’ />
        <xul:tab label=’textbox’ />
        <xul:tab label=’datepicker’ />
    </xul:tabs>
    <xul:tabpanels>
        <xul:tabpanel>
            <xul:checkbox />
        </xul:tabpanel>
       &nbsp<xul:tabpanel>
            <xul:textbox />
        </xul:tabpanel>
        <xul:tabpanel>
            <xul:datpicker />
        </xul:tabpanel>
    </xul:tabpanels>
 </xul:tabbox>
</script>

La logique applicative

Elle est implémentée en Javascript. Le SDK expose un objet implicite (ample) facilitant l’exploration et la manipulation de l’arbre DOM de l’interface. L’enregistrement des évènements peut se faire dynamiquement en Javascript ou en ligne dans le document décrivant l’interface via l’attribut on{event} (ex: onclick, onchange, etc.).

La décoration graphique

Elle s’opère par application de styles CSS (attribut type="text/ample+css"). Le support CSS n’est pas celui du navigateur mais celui du SDK, lequel supporte les namespaces ainsi qu’un plus grand nombre de sélecteurs.

Voici un exemple d’implémentation :

<style type=’text/ample+css’>
@namespace xul ‘http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul’;

.hilight {
    background-color: yellow;
}

xul|listitem:selected {
    background-color: blue;
    color: white;
}
</style>

Architecture

Le SDK est constitué d’un noyau (runtime) d’une part et de l’implémentation des langages de description d’interface d’autre part. Les implémentations sont indépendantes les unes des autres. Il est tout à fait possible de développer un langage de description d’interface propriétaire pour les besoins d’un projet et/ou dans le cadre d’une industrialisation des développements.

Conclusion

Ample SDK est toujours en cours de développement et il est important de noter que le support de HTML5 n’est toujours pas finalisé, ce qui rend son utilisation en production prématuré.
Toutefois, Ample SDK montre bien que l’obsolescence d’un navigateur n’est plus un obstacle significatif au déploiement des standards émergeants du web : SVG, XUL et HTML5 pour ne citer que les plus significatifs.
Cette perspective n’est devenue envisageable qu’avec la montée en puissance des librairies Javascript comme nous l’expliquions dans cet article, en citant notamment l’exemple d’implémentation jQuery de la spécification CSS3 Template Layout, un standard en devenir non encore supporté par les navigateurs de dernière génération.

Pour aller plus loin

Quelques démonstrations peuvent être évaluées depuis la page d’exemples, en particulier les démos XUL et SVG ont retenu notre attention (sous IE 5.5, il va sans dire !).
Outre l’espace de téléchargement et quelques tutoriels, on recommandera la lecture de quelques articles techniques actuellement publiés.

Le Web mobile va t-il tuer l’App Store ?

Par Kadda SAHNINE

Publié le | 28 décembre 2009 | 1 Commentaire

fennec.jpgIl s’agit du titre choc d’un billet publié par Wired le 18 décembre dernier (Will the Mobile Web Kill Off the App Store ?). Il n’est pas inutile de rappeler que cet article vient en écho aux propos lapidaires tenus cet été par Vic Gundotra (Google) selon lequel l’App Store n’a tout simplement plus d’avenir.
L’auteur, visiblement inspiré par la sortie prochaine de Fennec – le navigateur mobile développé par la fondation Mozilla – estime que l’App Store est un modèle de distribution transitoire appelé à s’effacer devant la montée en puissance des standards du Web mobile. Par ailleurs, Mozilla affirme avoir implémenté le moteur Javascript le plus rapide actuellement embarqué dans un navigateur mobile, ce qui contribuera à légitimer les standards du Web mobile face aux applications natives jugées plus performantes.

Sans aller jusqu’à prophétiser la mort prochaine de l’App Store, nous avons développé une thèse similaire à l’occasion d’un article publié en octobre dernier :

« go backkeep looking »

A propos d'Inovia Conseil

Inovia Conseil est un cabinet d'architecture spécialisé dans le conseil IT, l'expertise technique et le développement de systèmes informatiques.
Nous accompagnons nos clients dans toutes les phases opérationnelles d'ingénierie des systèmes d'information, allant du conseil IT aux développements à valeur ajoutée.

Flux RSS

Rechercher

Administration