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 MapReduceGoogleFS 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
copy-link