ACTUALITÉ SCIENTIFIQUE
ET INNOVATION DE L'ÉTS
Hadoop : l’architecte du «big data»? - Par : Abraham Gomez,

Hadoop : l’architecte du «big data»?


Abraham Gomez
Abraham Gómez est chercheur en TI. Ses intérêts de recherche incluent l’intelligence artificielle, les applications infonuagiques ainsi que les applications génétiques des mégas données. Il termine actuellement un doctorat à l’ÉTS.

L’image d’entête provient de DARPA, domaine public, source.

Dans l’article « Les bases de données No-SQL, une solution qui représente un défi » publié récemment, nous avions introduit très sommairement le projet Hadoop. Cet article se concentrera sur Hadoop pour que vous puissiez comprendre à quoi ce système sert et toutes ses implications de nos jours dans les systèmes informatiques.

Doug Cutting, le créateur de Hadoop, s'inspira de la doudou de son fils de 3 ans, un éléphant jaune, pour le logo ainsi que pour le nom de ce nouveau framework Java.

Doug Cutting, le créateur de Hadoop, s’inspira de la doudou de son fils de 3 ans, un éléphant jaune, pour le logo ainsi que pour le nom de ce nouveau framework Java [1].

Qu’est-ce que Hadoop? Wikipedia 2014 nous explique qu’Hadoop est un framework écrit en langage Java qui est délivré sous la licence de la Free Software Foundation ou FSF relatif au « code source ouvert ». Hadoop a été conçu par la fondation Apache pour 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 des systèmes MapReduce, Global File System (GFS) et BigTable de Google qui ont été conçus entre 2003 et 2008 (Ghemawat, Gobioff et al. 2003; Chang, Dean et al. 2008).

Quelques exemples qui témoignent de la performance exceptionnelle de Hadoop dans entreprises comme Facebook ou Yahoo. Selon Jay Parikh, vice-président Infrastructures chez Facebook, leur système de st0ckage des données étaient composé en juillet 2012 d’une grappe de serveurs de plus de 100 pétaoctets d’espace de mémoire dans un seul système. Leurs serveurs ont en mémoire plus de 250 milliards de photos et, chaque jour, ils reçoivent environ 350 millions nouvelles photos. Pour gérer cette immense banque de données, Facebook utilise un ensemble d’outils parmi lesquelles se démarquent :

  • Hadoop
  • Hive : un logiciel d’analyse de données permettant d’utiliser Hadoop avec une syntaxe proche du SQL. [1]
  • HBase : HBase est une base de données distribuée disposant d’un stockage structuré pour les grandes tables[1]

Les deux dernières applications font partie de l’environnement Hadoop. Ces outils sont utilisés de nombreuses façons, par exemple, Hadoop est la base de Facebook Messaging, et de même, il est utilisé pour gérer les messages envoyés à partir de PC ou téléphone mobile. Un autre usage d’Hadoop est pour générer des rapports aux  tierces compagnies collaboratrices qui ont besoin de suivre le succès de leurs applications.

Pour Yahoo, Hadoop est la seule plate-forme utilisée à l’échelle mondiale, selon Scott Burke, vice-président de la publicité et des plates-formes de données. Yahoo a une grappe de 42,000 serveurs, montée sur 1,200 serveurs «racks» dans quatre centres de données. Dans leur plus grand groupe, Hadoop dispose de 4,000 nœuds:ils vont augmenter sa puissance à 10,000 nœuds avec Hadoop 2,0. De plus, Yahoo utilise Hadoop pour gérer son système de contrôle des spams. Il analyse environ 20,5 milliards de messages de spams par jour. Hadoop est aussi utilisé pour l’analyse des informations internes. La mémoire utilisée est de 140 pétaoctets pour toutes les interactions avec les utilisateurs.

Il faut toutefois définir quelques concepts de base pour bien comprendre Hadoop.

Le mot « code source ouvert » concerne la licence d’Hadoop qui respecte des critères précisément établis par l’Open Source Initiative, c’est-à-dire les possibilités de libre redistribution, d’accès aux codes sources et de création des travaux dérivés. Hadoop peut être librement distribué : toute personne peut accéder à son code ou contribuer à son développement.

En programmation informatique, selon Wikipédia, un framework est un ensemble cohérent de composants logiciels structurels, qui sert à créer les fondations ainsi que les grandes lignes de tout ou d’une partie d’un logiciel (architecture). Hadoop est donc un logiciel de base pouvant servir à bâtir autres projets ou logiciels. Un framework doit être de caractère générique et faiblement spécialisé. Il peut être constitué de plusieurs bibliothèques chacune spécialisées dans un domaine. Ce framework définit un cadre de travail : en d’autres termes, il impose une manière de construction, il guide l’architecture logicielle et le développeur doit de cette façon respecter certains patrons de conception (patterns).

Les « applications distribuées » sont des applications conçues pour être développées sur plusieurs machines (une machine réfère à un seul processeur). On peut penser qu’une application est une boite de plusieurs composants dans laquelle chaque composant va être traité par un différent processeur (figure 1).

abra1

Le concept d’applications «échelonnables» est fortement relié au le concept de «scalabilité» (scalable) qui signifie selon le dictionnaire l’Internaute, «un système informatique (ou de l’un de ses composants) apte à s’adapter d’un point de vue dimensionnel, tant vers des tailles inférieures que vers des tailles supérieures. Cette caractéristique permet à un système logiciel de s’adapter à un changement d’ordre de grandeur de la demande (montée en charge) et à maintenir ses fonctionnalités et ses performances en cas de forte demande. Une application Hadoop peut permettre de servir facilement 100 clients et répondre de la même manière à une forte demande de 1000 clients par exemple.

Le framework Hadoop est la réponse de la fondation Apache aux demandes de traitement d’information de grands volumes, qui inclut le traitement de données de type BigData (à une échelle en pétaoctets) et l’utilisation d’un ensemble de processeurs. Ce système est conçu pour soutenir le développement d’autres logiciels sur un réseau de processeurs et de disques durs.

Comme la plupart des frameworks, Hadoop comporte plusieurs composants, à savoir :

  • Hadoop Common : contient toutes les bibliothèques et les utilitaires nécessaires pour que d’autres logiciels puissent se servir d’Hadoop.
  • Hadoop Distributed File System (HDFS) : le HDFS est un système de fichiers distribué, extensible et portable développé par Hadoop à partir du Google File System (GFS). É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.
  • Hadoop YARN :Une plateforme chargée de la gestion des ressources de calcul en grappes et de les utiliser pour la planification des applications des utilisateurs de gestion des ressources.
  • Hadoop MapReduce : Un modèle de programmation pour le traitement de données à grande échelle.

Tous les modules de Hadoop sont conçus avec l’hypothèse fondamentale que les pannes sont fréquentes, soit d’une machine individuelle ou d’un ensemble de machines. L’architecture Hadoop corrige automatiquement ces situations.

Sur la base fondamentale de Hadoop, on peut démarrer plusieurs modules comme :

  • Apache Pig : Pig est une plateforme de haut niveau pour la création de programmes MapReduce utilisés avec Hadoop. Le langage de programmation de cette plateforme est appelé « Pig Latin ». Pig Latin fait une abstraction du langage Java et MapReduce dans une notation semblable à celle de SQL utilisés dans les systèmes de bases de données relationnelles
  • Apache HBase : HBase est une base de données distribuée, non-SQL, de code source ouvert, basé sur le modèle BigTable de Google et écrit en Java. Il est développé dans le cadre du projet Apache Hadoop de la fondation Apache et utilise HDFS pour offrir des capacités BigTable pour Hadoop.
  • Apache Spark : Spark est un modèle de programmation qui n’est pas liée au modèle MapReduce de deux étages (Map et Reduce). Il promet des performances jusqu’à 100 fois plus rapides que Hadoop MapReduce, pour certaines applications.
  • Apache Hive : Apache Hive est une infrastructure d’entrepôt de données construite au-dessus de Hadoop pour fournir des analyses des données. Bien qu’initialement développé par Facebook, Apache Hive est maintenant utilisé et développé par d’autres sociétés comme Netflix.

Actuellement, Hadoop nous offre une constante évolution qui, chaque jour, nous surprend par ses progrès technologiques qui permettent d’améliorer le traitement de données du type «BigData» dans un contexte de code ouvert.

aghadoop2

 

Abraham Gomez

Profil de l'auteur(e)

Abraham Gómez est chercheur en TI. Ses intérêts de recherche incluent l’intelligence artificielle, les applications infonuagiques ainsi que les applications génétiques des mégas données. Il termine actuellement un doctorat à l’ÉTS.

Programme : Génie des technologies de l'information  Génie logiciel 

Profil de l'auteur(e)


Recevez les dernières actualités scientifiques de l'ÉTS
commentaires

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *