Big Data : connaissez-vous Hadoop ?
Dans le cadre de son offre Big Data, Oracle a choisi d'utiliser Hadoop. Connaissez-vous ce framework qui rencontre une popularité de plus en plus grande ?
Hadoop en bref
Hadoop est un framework Java libre destiné aux applications distribuées et à la gestion intensive des données. 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 solutions MapReduce, GoogleFS et BigTable de Google. Hadoop est un projet Apache, amélioré et supporté par des sociétés telles que Cloudera.
Oracle et Hadoop
Oracle a choisi la Cloudera's Distribution of Apache Hadoop (CDH). Pour ses clients utilisant déjà Hadoop, l'acquisition d'Oracle Big Data Appliance n'est pas obligatoire. Des techniques alternatives sont disponibles pour charger des données extraites d'Hadoop dans une base Oracle cible. Voici la position de Hadoop dans l'architecture Oracle Big Data :
Dans ce schéma, Hadoop obtient ses données à partir d'Oracle NoSQL Database. Mais Hadoop contient également un système de fichiers distribué (HDFS), qui permet de stocker les données sur plusieurs serveurs, avec parallélisation des accès et résistance aux pannes. Dans un autre billet de ce Blog, nous avons déjà présenté l'approche Big Data d'Oracle dans son ensemble. Voici un autre schéma présentant l'architecture Hadoop :
Un exemple de mise en oeuvre
Pour comprendre une nouvelle technologie, rien ne vaut un exemple concret. Voici un exemple tiré de la présentation "NetFlow Analysis with MapReduce", préparée par Wonchul Kang, Yeonhee Lee et Youngseok Lee (Chungnam National University). L'application consiste à surveiller le trafic réseau à partir de l'examen des flux. Habituellement, le volume de flux est réduit et des outils tels que Cisco NetFlow conviennent.
Dans certains cas, le volume de données peut devenir CONSIDERABLE :
- Mise en historique de données sur les flux
- Trafic anormalement élevé pendant une certaine période (attaque Internet, etc...)
L'architecture
Voici une vue d'ensemble. Les données et les traitements sont répartis sur l'ensemble des noeuds.
DĂ©tails sur la mise en oeuvre
Les données sont récupérées et stockées :
Les informations Ă traiter sont :
- lues, sélectionnées, transformées et/ou mises en forme (fonction Map)
- font l'objet de calculs spécifiés (fonction Reduce)
MapReduce peut être utilisé pour un grand nombre d’applications, dont grep distribué, tri distribué, inversion du graphe des liens web, vecteur de terme par hôte, statistiques d’accès au web, construction d’index inversé, classification automatique de documents, apprentissage automatique, traduction automatique statistique (distributed grep, distributed sort, web link-graph reversal, term-vector per host, web access log stats inverted index construction, document clustering, machine learning, statistical machine translation).
De manière plus significative, quand MapReduce fut terminé, il a été utilisé pour régénérer entièrement les index Internet de Google, et a remplacé les vieux programmes ad hoc utilisés pour la mise à jour de ces index et pour les différentes analyses de ces index.
MapReduce génère un large nombre d’intermédiaires et de fichiers temporaires, qui sont généralement gérés et accédés via le Google File System pour de meilleures performances.
Mise en oeuvre d'un Benchmark
Voici le jeu d'essai mis en oeuvre (suivant la description ci-dessus) :
Voici les mesures de performances constatées pour 3 niveaux de volumétrie. La première colonne représente le temps passé pour obtenir le résultat avec un progiciel Flow-Tools. Les 4 colonnes suivantes montrent le temps consommé avec Hadoop Map/Reduce, sans parallélisation, MR (1), ou avec un niveau de parallélisation de 2, 3 ou 4.
Nous notons un gain de temps très important : de 4h30 avec un outil Flow-Tools, on passe à 1h15 avec Hadoop avec une parallélisation de 4. En augmentant le nombre de serveurs, un temps bien inférieur serait obtenu.
Gestion d'une panne sur un serveur
En cas de panne, Hadoop gère la reprise automatique du traitement en le limitant aux serveurs survivants. Voici deux schémas montrant cette fonctionnalité mise en oeuvre sur la fonctionnalité Map et sur la fonctionnalité Reduce :
Synthèse
Merci d'avoir lu jusqu'ici. Ce billet de notre Blog a voulu vous présenter ce qu'est Hadoop MapReduce. Sous des apparences de simplicité extrême, un éventail de fonctionnalités étendues, de puissance et de résistance aux pannes ont fait de cet outil un moyen largement utilisé parmi les grands noms du Web : Google, Amazon, Groupon, Navteq, Samsung, Trend, et bien d'autres.
Oracle a développé des extensions :
- utilisation d'Hadoop avec Oracle Data Integrator (ODI) : Hadoop Knowledge Module
- extensions Ă Oracle Loader pour utiliser Hadoop
- autres extensions