Vous êtes sur la page 1sur 11
Exploration de Hadoop -_ + Hadoop est écrit en java et est concu pour pour Fonctionnalités oa eee ree structurées et non structuréea (terabytes, petabytes) ee = Les données sont enregistrées sur des serveurs ms ate cao pane dul. Cating dans un cente de données, dans des étagéres ed re ap Bde (racks) de serveurs Exploration de Hadoop Exploration de Hadoop = Hadoop stocke et traite les données comme un gtappe Hadoop (Hadoop cluster - ensemble de noeudside serveurs). + Les serveurs peuvent étre ajoutés ou retires SS Tolérant aux pannes => Evolutf (scalable) Historique de Hadoop 2002 Development dun moteur de recherche cstibub open source Nutch par Doug Cutting et Mike Kafreta (étudiant). Le calcul se fat sur quelques machines avec qulaues limites et problemes. + 2003-2004 GFS et Map and reduce: GFS syetome de fchiews istibués et calcul cstrioué map-reduce développé par google + 2008 paltforme pour Nutch: en se basant sur GFS st map-redues, hug Cig hung une latforma pr Nth Historique dHadoop + 2006 Hadoop: Dug Cutting (yahoo) reprendre les concepts présentés par google pour résoudre les problames rencontrés depuis le projet Apache Nutch. et ciée une nowelle version améliorée quil appelle Hadoop, le nom {de '6léphant en pelushe de son fis + 2008 Exploitation de Hadoop: ‘ondation Apache. projet indépendant de la + Yahoo utilise Hadoop pour sa page c'accuell (publicités cibées, contenus adaptés, le « top recherche » des ullisateurs..). Le ‘arappe (cluster) Yahoo comporte 42000 machines Composants principaux de Hadoop HADOOP 2.0 HADOOP 1.0 Compossnts principaux de Hadoop Le systéme de fichiers distribué d’Hadoop (HDFS) + HDFS reprend de nombreux concepts proposés par des aystémes de fichiers classiques comme ext? pour linux (ou FAT pour Windows + HDFS divise les fichiers laiges en des petits morgeaux appelés blocs. + HDFS est un systéme distribué. ‘+ Sur un systéme classique a talle du cisque est généralement considérée comme laimiteglobale utilisation. ‘Composents principaux de Hadoop ‘+ Hadoop Distributed File System (HDFS): le Systéme de fichiers distribué Hadoop permet de stocker et de récunérer des fichiers en un temps performant + Moteur MapReduce : une haute performance implementation de traitement des données paralléle! distnibuée de Falgorithme MapReduce. ‘Composants principn de Hadoop + Dans un systéme cistibué comme HOFS, chaque nosud dun cluster correspond & un sous-ensemble du volume global de Conndes du custr. => Pour augnenter ce volume global, i sua dajouter de + HDFS utlse des talles de blocs largement supérieures & ‘ceux des systémes classiques. Composans principaux de Hadoop © Les tales de Blocs est par défaut 64 MB. Elle peut étre configurables @ 120 megabytes (MB) ou 250MB. Par ‘exemple un fichier de 1GB consomme huit blocs de 126MB son stockage, plus grandes petmettent d'accélererIa:08s @ un bloc. + Pour éviter les pertes de données, HOFS réplique les blocs sur plusieurs noeuds ‘Composant principaux de Hedoop * Les blocs sont stockés fet répliqués. Le facteur we de duplication = configurable ‘Composants principaux de Hedoop + architecture de machines HDFS repose sur des (Grappes. Un cluster Inclut un noeud de nom (noeud maitre) *NameNode* et plusieurs noeuds de données “dataNodes", Exemple dun grappe Hadcop canopraphi sure matere! ‘Composant principaux de Hadoop Nooud de nom (maitre - Name Node) + Le noeud de nom gére tous les soc8s aux fichiers y compris la lecture, 'écrture, la création, Iffacement et ta replication des blocs de données sur les noeuds de données, + Il maiatient toutes les informations des blocs de données & Vaide de mata données Composans principaux de Hadoop + Le nosud de nom doit a savoir quels blocs sur quels —noeuds de données construient le fcnerconpa Le nous ce rom tise wn vot || || S| pong tne wy) daunodss ane. LM = cluster. Composant principaux de Hadoop Leet de cher bud adoop HOFS) ) Noeud de dont 15 (data node-workers) + Les noeud de données fourissent continuellement des ‘messages au noeud de nom “heartbeat” (battement de Coeur) sour stassurer du Quand un heartbeat nest plus présente noeus de nom fait sor le noeud de données du custer et continue @ fonctonner comme sien ne s'est pass + ls fourissent un rapport de blocs “SlockReport” contenant la liste de blocs présents ‘Composants principaux de Hedoop + Le noeud de nom est un point unique de détaillance. Si ce service est arrété, il n'yaura pas un moyen diextrare Jes blocs d'un fictier. Hadoop 2 a ajcuté un noeud de nom en veile (standby) qui > receva un fichier de métadonnées cu ncsud de nom actif (principal) via te nasua de journal afin qu'en cae de défailance {du noeud de nom principal, le nosu de nom secondaire prend le elas ‘Composant principaux de Hadoop Exemple deriture¢'un fichier Soltle fichier morfichler:t de tall 160MB & stocker sous HOFS sous forme de blocs de 64 MB. B sottin? + Le programme du client Hadoop (un out hadoop console) divi le fichier en blocs de 64 MB. 160/64= 2 et resie 32MB. 2 dae blocs de 64M et un bloc de 32MB. Ce demier coccupera un espace de disque de 64MB, monfichiere en blocs: 3 blocs: A, B et C Composans principaux de Hadoop Exomple d'écriture d'un fichier “Le neeud de nom sera intentoge our sauvegarder les blocs du fichier Programme client des nous ce données oU seront enregistrés les blocs: bloc A dans Data node 1 et locs C et B dans data noce 2 et 3 respectivement ‘Le fichier sera stocké par les data nodes et répliqué tout en informant le nceus de nae Composants principaux de Hadoop Lemna egrariatin Moped + Les données qui sont civisés en blocs, et réparties sur plusieurs nceuds de données seront traitées avec deux ‘aches map et reduce développées parle programmeur + Le méme programme sera exécuté sur les noouds de plusieurs processus seront exécutés en méme Une fois que toutes les instances (nosuds) ont terminé les calculs, les résultats seront enregistrés localement. ‘Composant principaux de Hedoop Le modéle de programmation MapReduce MapReduce permet la programmation distrisuée (Google 2004) des applicatons gourmandes en données d'une fagon, simpltige pour le programmeur. Ainsi, le modéle de programmation permet au développeur de ne sintéresser qu’a la partie algorithmique. Il transmet ‘alors son programme MapReduce développé dans un langage de programmation au plateforme Hadoop pour lexéeution. Compossnts principaux de Hoop Lamas ce programmton Mapes + Fusionner les résultats partiels produits par des instances individuelles. > «job » MapReduce concere le travail aue le client souhaite réaliser. Ce travail est constitué de données entrée (contewes dans HDFS), dun programme MapReduce (imelémentation des fonctions map ct reduc) et de parametres dexécution, Composants principaux de Hadoop eel pent Mapas ‘On distingue 4 étapes dans un tritement mapReduce: Diviser les données c'entrées (spit) sous forme de plusieurs fragments Mapper chacun de ces fragmen's et obtenir, suite au trartement map, des coupies “cl, valeur> tape [+ Grouper et ir (shutle and sor) ces couples par clé reduce [* Pécur®: recor les résultats parils des mappers pour soir la résuiat ile avec le tratement de « ecice » Composants principaux de Hadoop Lemna egrariatin Moped Exemple: Un utlisateur définit une fenction pour une ‘pplication qui compte le nombre d'occurrences de chaque ‘mot dans un ensemble de documents ‘Supposone que Io traitement co fait lee documents suivants: CComposents principaux de Hadoop ES SrS3 = ae pee aes ek ioe er Beware = [ML Rese we egae nF segments fer) ours pases chaque intra a coat en ene tates domaes, BY \Bhees essa st sc ar tow sques locaux des dataNoges ot es instances Map sexécutent, sent ereeutat ot parts. Ho Lee seutste Soaue sont cert parts mstanons Rest sam Processus pour compter es nombre de mots 7 _—_— = ome EA oS = ima owe ove Lofton st a ie ES me wat fee mee imme 1 Ee sate Se aaa Ecriture d'un programme mapReduce pour exemple: compter les mots {La programmation mapReduce peut éte effectuée avec plusieurs langages tele que JAVA, python, R, etc. Dans ce cours, la programmation sera en python. Ecriture du programme mapReduce en Python et execution en local Chaque entrée sera générée en a vaiue “ ra + Les instuctons dans la méthode map pemettont de fae la segmentation, de chaque ligne en entrée, en mois a Taide de Sp Assigner& chaque mt word) a valeur f. oops mes code du reducer def reducer(self, key, values): yield key, sum(values) Lente: es 5 0 la ate do mote obtenus sorts Fopéeatin so Soe 4 and. shule (Wer et sfouer operation efectuee Pum 1 ‘uomatquement apres Fexéovion du mapper) te + Lasomte + Lait ets oa posats dans fier en ata La valeur ta somme de la Isto do 1 pour chaque mat => nombre \Soocurances de chaque mo. Reducer Class + Les sorties generés par le mapper .passent par une etape intérmidiaite automatique shui and sort: grouper les valeurs suivant les clés et les trier + Tes valeurs resutatnts de shiuie and sort sont fournis au reducer, qui va les traiter et générer les résultats finaux, crt dn proatanme maptedie pour xemp Spires mats Programme complet La classe mob permet de ‘rom mob job import Nob faciter la programmation lass MRWordFrequencyCountiMRJoby: %Y°= Pion & exEauler map ft requce @ parte dun seul et mappetse,_. ne) Sehiee "worcs = ine epit("") for word in wore: ‘oe More, | sonnet pao ad oar an, + Un Job est dnt comme tune classe qui here de La classe MRUcb, Cate classe content les. méthodes. qui detnssent as etapes cu job et reducers, key, valves) ‘jel ey, sum(alues) Lsceppaiaieeleetnas Eerture du programme mapReduce on Python ot xécutlon on dtibus Programme complet + Un ep 0 constiue dun ‘fem mob ob import Mob mapper, un combiner et un LLexécution sur windows en local était permise avec Mrjob class WercFreqienecounmrion): nen oes ‘Qui as permis le mepper et le reducer dans un seul fichier. det mapperset_ in: ‘words ie pi") words in spl Pour Fexécution sous Linux ou sur Hadoop sans utiiser ‘yield word ower), 4 MRJob, il faut avor un fichier pour le mapper et un fichier ee pour le reducer et i faut faire plus de précision dans le code, iets qui sera plus compliqué sans MRJob car il faut fournir tous det reducerset ey. valves) «Cos dur demires Sones sont ; Ne ; ‘veld key, sumivalues) Gece ar ae Ge les details de lecture, d'éciture, des exceptions etc. MRWiereFrequencyCount et le ‘Hiusrinteny python La sone du mapper est nyjous fentrée du reducer aprés fopératon shut eet crs impor sys = tusinenypyten ‘tive les entrées & part de Fenrée standard STDIN standard input) foriine in syst: ‘enieverles espace au début et la fi de chague ign ne) line = ne.t90) ‘les entre arent o TOM + spt segmenter ine en mote => words est une ste qu content ls forine nsysstan rots ‘supper es egpcos dedi et don do igne Raenepresacee | “Fooomentarssenrsisu du mapper ay ‘# parcour ia ste et nerémenterle compteur ‘ord cou = te 9pm 1) for ord in worst: ‘Feanver cout aos Stn ent 1 taro ws ast a a eantd STDOUT and oto Oe etanen frst ct nt yc etn, or age mot eee teabert scout et ps un notre, koe et passe ane conte print Ss (wordlowert) 1) + cet onetone car Hadoop tes ésutats de map parcé (ck mot avant dos = passrau reducer _ eerste wore: ‘overt sunt += cunt ean vert: ‘eee fee rautat& STOOUT rine ss’ crentore, curent cout) curenteount=court ‘ue vord=word ne pas outer résutat du damier mets ncossare ewe word = wor int iss curont wore centaur)

Vous aimerez peut-être aussi