[WEBINAR💻] Modernisez votre IT, migrez vers le cloud Oracle avec la préparation de votre Landing Zone. Inscrivez-vous dès maintenant à notre prochain webianr🎙!

✖︎
Digora blog

Big Data : connaissez-vous Hadoop ?

05/03/2012
Big Data

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. Schéma de l'utilisation d'Hadoop en entreprise

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 :

Position d'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 :

Schéma de 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.

Principe de fonctionnement d'Hadoop

Dans certains cas, le volume de données peut devenir CONSIDERABLE :

  • Mise en historique de donnĂ©es sur les flux
Historique de données sur les flux
  • Trafic anormalement Ă©levĂ© pendant une certaine pĂ©riode (attaque Internet, etc...)
Hadoop permet de faire face à cette difficulté avec le module MapReduce. L'essentiel du travail consiste à spécifier une fonction Map et une fonction Reduce. Tout le reste est pris en compte par le framework MapReduce.
Voici un schéma qui présente le module MapReduce, décomposé en fonction Map (parallélisée), Phase "Shufflet & Sort" et fonction Reduce (parallélisée) :
Schéma présentant le module MapReduce
La source de données peut être HDFS (Hadoop Distributed File System) ou une base NoSQL telle que Oracle NoSQL Database.
L'un des avantages de Hadoop réside dans le fait que si un des noeuds qui exécute une partie des traitements tombe en panne, le travail est repris automatiquement par un autre noeud.

L'architecture

Voici une vue d'ensemble. Les données et les traitements sont répartis sur l'ensemble des noeuds.

Vue d'ensemble du fonctionnement de Hadoop

DĂ©tails sur la mise en oeuvre

Les données sont récupérées et stockées :

Mise en Ĺ“uvre de Hadoop

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)
Schéma du traitement des informations
Wikipédia précise :

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) :

Mise en Ĺ“uvre d'un benchmark
La configuration matérielle mise en oeuvre pour le test est la suivante :
schéma de la configuration matérielle mise en œuvre pour le test

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.

Graphiques des mesures de performances des 3 niveaux de volumétrie

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 :

Gestion d'une panne avec Hadoop sur Map Task

Gestion d'une panne avec Hadoop sur Reduce Task

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
Nous reviendrons prochainement sur ces extensions.
Vous souhaitez en savoir plus ? Contactez-nous