Connexion

Connexion à votre compte

Identifiant
Mot de passe
Maintenir la connexion active sur ce site

Analyse des grands volumes de données

Les technologies pour transformer le Big Data en Big Information

 Les Big Data sont considérées comme de l’or noir du 21ème siècle. Et en effet il y a des trésors d’informations cachés dans tout ces Exaoctets de données (logs, réseaux sociaux, open data...). Mais par quels moyens les analyser, les corréler, les prédire et en extraire des informations pertinentes? Dans cet article nous donnons des pistes pour répondre à cette question.



Changer de technologie pour assurer des délais de traitement raisonnables

La première question que l’on peut se poser c’est “pourquoi ne pas utiliser des techniques de data mining classiques ? ”. Parce que les paradigmes de programmation et les architectures habituelles ne peuvent pas traiter de tels volumes dans des délais raisonnables.

Heureusement, comme pour les autres spécialités de l’informatique décisionnelle, des solutions fondées sur Hadoop existent pour le datamining qui résolvent ces problèmes de volumétrie.

Petite revue des technologies existantes

La plus connue d’entre elles est sûrement Mahout. Mahout est une librairie de fonctions de machine learning. Elle utilise Hadoop MapReduce et inclue de nombreux algorithmes de data mining (régression logistique, réseaux de neurones, SVM, k-means, analyse en composantes principales,...). Adoptée par des acteurs clés du secteur, elle connaît un très fort succès en ce moment et est présente dans toutes les distributions d’Hadoop (Cloudera, HortonWorks et MapR).

Cependant l’utilisation de Mahout est compliqué et requière de bonnes connaissances techniques (principalement en Java). De plus elle nécessite de très importants volumes de données ainsi que de très nombreux noeuds de traitement pour obtenir des gains de performance significatifs par rapport à une solution classique. Ce qui en fait une solution complexe à mettre en place dans le cadre d’un projet mais cependant très complète du point de vue des fonctionnalités.

Pour simplifier l’utilisation de Mahout, Radoop propose un outil visuel. Il se base sur l’ETL Rapide Miner en y ajoutant des composants pour manipuler Mahout ainsi que d’autres outils de Hadoop (Hive, HDFS, ...). A noter, cet outil n’est pas open source et ne dispose pas (encore) d’une communauté d’utilisateurs.

Les algorithmes de traitement de graphes - tel que PageRank par exemple - ne sont pas présents dans Mahout car ils sont mal adaptés à MapReduce. Les frameworks Hama et Giraph se basent sur le paradigme de programmation BSP (Bulk Synchronous Parallel) ainsi que sur la nouvelle version de Hadoop (YARN). Ils sont conçu pour effectuer des algorithmes de traitement de grands graphes (ex: PageRank, clustering de noeuds, ...).

L’un des langages les plus utilisé par les statisticiens est R, une adaptation de R est disponible pour Hadoop : RHadoop (ne pas confondre avec Radoop). Malgré ses performances plus faibles (10 fois inférieure à celle de Mahout) R pour Hadoop peut être utile pour la découverte de données ou pour développer rapidement un algorithme.

Spark pour le Datamining de BigData

Mais le projet qui nous semble le plus prometteur pour le data mining de BigData est Spark. Spark est une implémentation de MapReduce en Scala. Contrairement à Hadoop MapReduce il conserve les données en mémoire augmentant considérablement les performances des algorithmes de machine learning. De plus il dispose de tout un écosystème pour faciliter les tâches d’analyses de données:

 

  • Shark, un entrepôt de données pour Spark compatible avec Hive.
  • Bagel, un framework d’analyse de graphes pour Spark.
  • Et plus spécifiquement au data mining, un outil en développement, nommé MLBase qui inclura des algorithmes de machine learning. Et surtout un système de sélection automatique d’algorithme et de ses paramètres pour en optimiser le fonctionnement en fonction des données à analyser/prédire.


Le data mining de BigData est une thématique encore assez neuve et donc très active en ce moment. Il n’y a pour l’instant aucune solution dominante. C’est pourquoi, chez Altic nous suivons et participons au développement de toutes ces nouvelles technologies. Nous créons des composants Mahout pour l’ETL Talend afin d’en faciliter son utilisation. Nous développons de nouveaux algorithmes de data mining pour Spark. Et nous déployons une solution utilisant RHadoop pour des statisticiens.