Publié par
Il y a 3 années · 1 minute · Data

Panorama des technologies Big Data (IT-expert Magazine)

bigdata-xebia-tree

Big Data : le mot est sur toutes les lèvres, dans toutes les DSI et toutes les directions marketing. Même les médias grand public y consacrent des sujets à une heure de grande écoute.

Il est de notoriété publique que certains grands acteurs du Web, qu’ils soient américains ou français, ont réussi à transformer d’énormes quantités de données non structurées en informations valorisables, directement pour leur métier ou auprès de leurs partenaires et clients.

Toutes les entreprises que nous avons pu rencontrer autour de ce sujet le sentent bien : elles possèdent quelques pierres qui n’attendent que d’être taillées et polies pour révéler leur vraie valeur. Mais par quel bout entame-t-on un projet Big Data ?

Avant tout, il faut bien comprendre que l’écosystème dit « Big Data » est extrêmement riche et varié, et que les projets open ou commerciaux fleurissent chaque semaine.

Le but de cet article est de donner un aperçu des principaux acteurs technologiques et des cas d’utilisation que l’on peut leur associer.

Les caractéristiques communes de tout projet Big Data

Le mouvement Big Data est né à la suite de publications scientifiques issues des géants américains comme Google ou Yahoo… Ils ont rompu avec les systèmes traditionnels, en anticipant que les quantités de données échangées sur le Web allaient exploser. Ils ont donc développé des logiciels novateurs, en insistant sur des axes originaux :

  • La scalabilité : derrière cet anglicisme barbare se cache la notion d’adaptabilité. Nul n’est à ce jour capable de prévoir avec précision quelle sera la réaction « du Web » à la publication d’un produit. Par exemple, des entreprises de jeux comme Facebook qui tablaient sur quelques milliers d’utilisateurs ont dû faire face à un afflux de plusieurs millions d’abonnés. Sans un système hautement adaptable, et malgré un business model mûrement réfléchi, l’incapacité de faire croître rapidement et simplement leur SI aurait contraint ces entreprises à mettre la clé sous la porte.
  • Un coût mesuré : c’est un corollaire de la scalabilité. Le SI doit être en mesure de croître simplement, mais aussi à un coût mesuré. C’est pour cette raison que la plupart des systèmes Big Data repose sur des serveurs d’entrée de gamme. Leur multiplication permet une montée en puissance adaptée à la taille de l’entreprise, avec un coût linéaire et contrôlé.
  • L’open source. C’est là la grande révolution : les acteurs majeurs de Big Data ont quasiment tous reversé le cœur de leur système à la communauté open source. C’est là un changement majeur. Auparavant les éditeurs faisaient la loi, ces derniers courent maintenant après la communauté Open Source et cherchent à offrir des fonctionnalités avancées.
  • La tolérance à la panne. Les sites à fort trafic outre atlantique l’ont rapidement décelé : la panne est aujourd’hui, en regard de la taille des data-centers et des données brassées, un non événement. Les systèmes Big Data sont donc taillés pour résister à des pannes nombreuses et variées.
  • Le polymorphisme. La grande majorité des systèmes Big Data actuels expose des API disponibles dans plusieurs langages (Java, Python, Ruby, R, SQL, C#…).

Hadoop, ou la démultiplication des traitements batch

Hadoop est une plate-forme open source, développée à l’origine par Yahoo!, sur une idée originale de Google. C’est la plate-forme Big Data par excellence et on la trouve presque systématiquement dans un projet qui vise à traiter de grandes quantités de données.

En effet, de par sa nature, Hadoop s’adresse avant tout à ceux qui ont des volumes de données colossaux. En dessous de 10 To de données, l’utilisation de Hadoop en tant que tel peut apparaître comme contre productive. De plus, le cœur d’Hadoop est réellement destiné à traiter des données en mode batch, avec une latence au lancement des traitements qui peut paraître importante (plusieurs dizaines de secondes, voire plusieurs minutes).

Hadoop Distributed File System (HDFS)

HDFS est comme son nom l’indique un système de fichiers distribué, c’est-à-dire que chaque machine composant la grille Hadoop (cluster en anglais) va héberger une partie des fichiers. Pour simplifier, on peut comparer HDFS à un RAID logiciel distribué sur plusieurs serveurs.

Ce système de fichiers possède une capacité d’hébergement parfaitement linéaire (chaque octet de disque ajouté à la grille peut participer à l’hébergement des fichiers), une forte tolérance à la panne, par défaut, chaque fichier est présent en trois exemplaires distribués sur des machines, des racks, voire des data-centers différents. De la même façon, chaque machine apporte ses capacités en I/O au cluster et la grille est donc capable d’absorber rapidement de grandes quantités d’écriture.

Pour autant, le système de fichiers n’est pas parfait : contrairement à une base de données, il est impossible d’amender (update) les fichiers écrits sur le système. Il est donc nécessaire de fonctionner par recopie complète du fichier avec une modification par batch.

Framework Map/Reduce

L’autre composant majeur de Hadoop est son framework Map/Reduce. Map/Reduce est un paradigme de programmation permettant de distribuer les algorithmes de traitements au cœur de la donnée. La phase de Map permet de sélectionner et d’organiser les données « intéressantes » pour le traitement, et la phase de Reduce permet de les agréger, en réalisant par exemple des opérations mathématiques.

Chaque machine du cluster participe aux traitements Map / Reduce, en « apportant » une fois de plus ses I/O mais aussi sa CPU. Là encore, la puissance de calcul disponible est linéaire, et chaque machine ajoutée au cluster ajoutera de la puissance globale.

La distribution des traitements Map/Reduce sur le système de fichiers lui-même distribué est la grande force de Hadoop. Chaque traitement étant découpé en lot, il « suffit » d’augmenter la puissance du cluster pour avoir plus de parallélisation des traitements et donc de réduire les temps de traitement de plusieurs To voire Po. Dans la mesure du possible, les traitements sont placés où la donnée se situe, permettant ainsi de profiter au maximum des I/O d’une machine tout en minimisant l’impact sur le réseau du cluster.

Hadoop est particulièrement performant sur de gros volumes de données, traités en mode batch. Il est par exemple utilisé par Yahoo! ou Criteo pour exécuter leurs algorithmes de ciblage publicitaire.

Aujourd’hui, Hadoop est distribué sous de nombreuses versions : le projet OpenSource hébergé par Apache bien sûr, mais aussi des distributions « améliorées », qui offrent du support comme Cloudera, HortonWorks et MapR, ou enfin des éditeurs qui offrent une solution embarquant Hadoop intégrée dans leur propre écosystème (comme Microsoft ou IBM). Le choix de la distribution sera probablement le premier chantier à adresser dans votre projet Hadoop.

La base de données orientée colonne

Autre pan incontestable du Big Data, la base de données orientée colonne trouve là aussi ses origines chez Google. Le but du projet était de réaliser une base de données accessible par des milliers, voire des millions d’utilisateurs simultanés tout en offrant des possibilités de stockage quasi infinies et des performances adaptés aux exigences du Web moderne.

La solution proposée par Google a été de modifier l’organisation des données sur le disque : là où les bases de données relationnelles classiques raisonnent en terme de lignes dans une table, BigTable (le projet de Google) propose de raisonner en terme de colonnes.

Ce modèle permet un modèle de données flexibles (chaque colonne n’est pas forcément présente dans tous les enregistrements d’une table), particulièrement adapté à la modélisation des relations un-à-plusieurs.

La lecture et l’écriture de très grandes quantités de données sont extrêmement performantes. Mais cela se fait au prix des possibilités de requêtage qui sont, elles, très limitées.

Deux acteurs se distinguent, HBase, apparenté au projet Hadoop (car HBase repose sur HDFS), supporté par l’entreprise Cloudera, et Cassandra, initié par FaceBook et supporté par DataStax.

Les cas d’utilisations sont nombreux. On peut par exemple parler du stockage de constructions tarifaires complexes (cas des Tour Operator par exemple), ou plus récemment de la société Netflix qui a analysé les tendances de ses utilisateurs avant de lancer sa série House Of Cards.

Machine learning

Le « machine learning » est une branche de l’intelligence artificielle. Elle est bien antérieure au mouvement Big Data, et n’y est pas reliée directement. Néanmoins, le « machine learning » bénéficie d’un fort regain d’intérêt grâce aux nouvelles possibilités offertes par les technologies Big Data.

Le « machine learning » consiste à construire des systèmes qui apprennent des données qu’ils reçoivent. Autrement dit, à partir d’un comportement initial, les algorithmes de « machine learning » sont capables de se corriger et d’évoluer en fonction des faits dont on les alimente.

L’exemple le plus courant est celui du moteur de recommandation d’Amazon.com. Celui-ci va bien au-delà d’un simple « regroupement » d’articles : en plus de ces liens entre divers produits, le moteur analyse le comportement de l’utilisateur, et tente de le catégoriser pour l’orienter vers les offres les plus pertinentes.

Ces systèmes sont le plus souvent sur des modèles mathématiques, comme les réseaux bayésiens naïfs ou les réseaux neuronaux, pour lesquels on va chercher un paramétrage optimal. La construction d’un système comporte ainsi deux phases. La phase initiale consiste à « entraîner » la machine, à partir d’un jeu de données connu. Une fois le système entraîné, il faut le confronter au monde réel et l’évaluer régulièrement afin qu’il se corrige et s’améliore à chaque nouvelle donnée reçue.

Le principe même du « machine learning » explique son regain d’intérêt avec l’apparition de Big Data : la démultiplication des données et des puissances de calcul permettent de gérer de plus en plus de données, et donc d’affiner de manière spectaculaire la pertinence des prévisions des systèmes apprenant. En pratique, la différence entre deux moteurs se fait bien souvent sur le volume des données et le choix des attributs (features) décrivant les données, et non pas nécessairement sur le modèle mathématique du moteur. La révolution n’est donc pas tant théorique que pratique.

Le porte étendard de l’association Machine Learning / Big Data est sans conteste Mahout, un logiciel libre issu de la fondation Apache. Mahout repose sur Hadoop, et distribue ses algorithmes de calcul sous forme de Map / Reduce sur la grille. Néanmoins, l’utilisation de Mahout demande de solides connaissances mathématiques alliées à une très bonne connaissance de l’écosystème Hadoop. Sa maîtrise n’est donc pas à la portée du premier programmeur venu.

C’est pour cette raison que de nombreux logiciels de « machine learning » prêt à l’emploi voient régulièrement le jour. Les startups portant ces projets rejoignent bien vite le portefeuille des grands acteurs du Big Data. Par exemple, la société Myrrix, qui propose un logiciel de recommandation « plug and play », disponible en SaaS sur le cloud, vient d’être rachetée par Cloudera, qui va rapidement l’intégrer à son offre standard Big Data.

Les systèmes de « machine learning » apportent des réponses satisfaisantes dans de nombreux contextes métier, comme la catégorisation client, l’analyse d’opinion…

L’émergence du temps réel

L’un des axes de développement du monde du Big Data est de se rapprocher du temps réel. Les systèmes actuels sont capables de traiter des milliards d’octets de données, mais leur latence est aujourd’hui un véritable enjeu.

Hadoop a posé les standards du monde Big Data, mais son fonctionnement en mode batch l’empêche d’adresser l’ensemble des problématiques de l’industrie du Web. Le temps réel (ou plus pragmatiquement, le besoin d’interactivité) est aujourd’hui un facteur différenciant. Chacun des acteurs majeurs du Web l’a bien compris, et tous se concentrent aujourd’hui sur la réduction des temps de traitements.

De nombreux projets OpenSource émergent, et visent tous le même but. Réitérer ce qui a fait la puissance de Map Reduce : son côté distribué, hautement scalable et résistant à la panne, mais sans son défaut majeur : sa latence.

Actuellement, on ne peut parler de standard, mais plusieurs projets font la course en tête : Twitter a donné à la communauté le projet Storm, Yahoo! a publié les premières versions de son logiciel S4, et la fondation Apache supporte Spark. Derrière tous ces logiciels, la même idée : aller vite, très vite, tout en maintenant une quantité astronomique de données en entrée.

Mais la réduction de la latence n’est pas le seul critère de compétition. L’autre problématique est de fournir un langage facile à apprendre et utiliser : pour faire simple, le plus proche possible de SQL. Le composant Hive a rempli cet objectif pour l’approche MapReduce. Apache Drill, le projet Impala de Cloudera ou encore Apache Shark pour Spark se positionnent également sur ce terrain, en traitant en parallèle la problématique de la latence. Au final le but est de permettre une exploration interactive des données, et d’ouvrir la plateforme à une population plus large que celle des programmeurs.

Conclusion

L’écosystème Big Data est en permanente évolution, et en dresser un panorama exhaustif est un exercice périlleux. Au final, cet article est une photographie du temps présent, et il sera peut-être obsolète l’année prochaine.

Il existe néanmoins des acteurs très sérieusement installés, et sur lesquels reposent des projets vitaux pour des groupes qui pèsent plusieurs milliards d’euros :

  • Hadoop, qui permet de traiter en mode batch plusieurs TeraOctets de données,
  • Cassandra, la base de données orientée colonne, qui sacrifie le requêtage complexe à des performances exceptionnelles en lecture / écriture,
  • Mahout qui permet d’exécuter des algorithmes de machines learning sur de large clusters Hadoop.
Pablo Lopez
Pablo est directeur technique au sein de Xebia. Opérationnel par goût, il intervient sur une large variété de missions, de l'analyse de performances en production au conseil en architecture logicielle.

7 réflexions au sujet de « Panorama des technologies Big Data (IT-expert Magazine) »

  1. Publié par chris, Il y a 3 années

    Merci pour le très bon article.

    J’ai juste une question : « En dessous de 10 To de données, l’utilisation de Hadoop en tant que tel peut apparaître comme contre productive »

    => qu’est-il conseillé de faire en dessous de ce volume de données ? Partir sur des solutions de Business Intelligence ? Base de données SQL ?

  2. Publié par Pablo Lopez, Il y a 3 années

    Bonjour Chris.

    Il n’y a pas vraiment de réponse « universelle » à votre question, tout dépend de l’usage que vous voulez faire de la donnée. Dans certains cas, les bases de données NoSql donnent de très bons résultats, même sur des agrégats complexes, la difficulté étant de bien ordonner ses données pour avoir la performance attendue.

    Par exemple aussi, une technologie comme ElasticSearch, identifiée comme « moteur d’indexation », peut rendre des services bien plus larges et permet d’exécuter des requêtes complexes sur de larges volumes de données.

    Pas de solution universelle donc, mais le monde du logiciel libre fourmille de pépites qu’il vaut la peine d’explorer avant de se tourner vers les traditionnels éditeurs de RDBMS.

  3. Publié par chris, Il y a 3 années

    Merci pour la réponse à laquelle je m’attendais un peu.

    A quand un panorama des technologies SQL et NoSQL pour m’aider ? :)

    Je plaisante bien entendu mais je constate en ce moment que de nombreux projets démarrent avec du BigData quand bien même la justification est très très lointaine. Mon approche serait plutôt de commencer avec du SQL ou du NoSQL « simple » puis seulement après de mettre en place cette artillerie lourde !

  4. Publié par Pablo Lopez, Il y a 3 années

    Chris,

    En attendant ce panorama NoSql (qui viendra en temps voulu ;), vous trouverez déjà des éléments d’information dans notre publication TechTrends : http://techtrends.xebia.fr/techtrends-xebia.pdf

    En espérant que cela vous orientera vers les bons choix technologiques.

  5. Publié par Kris Wood, Il y a 3 années

    Thanks for share me this nice information .These blogging jobs is helpful and very well.

  6. Publié par Kris Wood, Il y a 3 années

    Thank you for sharing valuable information. Nice post. I enjoyed reading this post. The whole blog is very nice found some good stuff and good information here

  7. Publié par Vincent Desbrosse, Il y a 3 années

    Merci tout d’abord pour cette synthèse, de votre point de vue, dans une infrastructure Big Data :
    – HDFS et une base NoSql (complémentaires ?)
    – les interactions entre le monde Big Data et la BI classique
    (cas ou une société souhaite exploiter en mode industriel des données de navigations, twitts avec sa connaissance client traditionnelle qui pourrait être sous Teradata…).

    Merci d’avance de votre retour, bien cordialement

Laisser un commentaire

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