Professional Documents
Culture Documents
FEUILLE
DE ROUTE
www.octo.com - blog.octo.com
OCTO > HADOOP - FEUILLE DE ROUTE
Prface
Nous avons profit de lintervention de Doug Cutting aux Cloudera Sessions Paris
en octobre 2014 pour linterviewer. Doug Cutting nest rien de moins que le papa
dHadoop, et le Chief Architect de Cloudera. Quel meilleur choix pour une prface
quune transcription de cette interview ?
Merci Cloudera France de nous avoir permis cet change.
Quel effet cela fait-il de voir quHadoop est en train de devenir la plateforme de rfrence
pour le stockage et le calcul de donnes, dans les grandes entreprises ?
Objectivement, cest une trs bonne chose. Cest une technologie qui est faite pour cela. Au plan
motionnel, cest trs satisfaisant, mais je dois admettre que jai eu beaucoup de chance. Jtais
au bon endroit au bon moment, et cest tomb sur moi. Si cela navait pas t moi, quelquun
02 dautre laurait fait depuis le temps.
Cest drle, car hier vous mentionniez les papiers que Google a publis sur GFS et sur
MapReduce, et vous sembliez surpris que personne dautre ne les ait mis en uvre. Comment
lexpliquez-vous? Les personnes concernes taient-elles dcourages par limmensit de
la tche, ou bien ?
Jai lavantage davoir dj contribu des logiciels open source. Jai travaill sur des moteurs de
recherche ; je pouvais apprcier lapport des technologies, je comprenais le problme, et comment
ces deux aspects se combinent. Je pense avoir t dans lindustrie logicielle suffisamment
longtemps pour savoir ce que cela signifie de construire un projet utile et utilisable. mon avis,
personne dautre navait alors assez de recul sur tous ces aspects. Jai pu profiter de ces papiers et
les mettre en uvre, en open source, pour en faire profiter les autres. Cest comme a que je vois
les choses. Ce ntait pas planifi.
Une question un peu plus technique maintenant : vous parliez hier de tous ces outils qui se
crent partir dHadoop, apportant de nouvelles technologies et de nouveaux usages pour
la donne. Comment percevez-vous lvolution dHadoop, en termes darchitecture, pour
quil offre de plus en plus de capacits dans le futur ?
OCTO > HADOOP - FEUILLE DE ROUTE
Cest une architecture trs gnrique. plus dun titre cest, comme je le disais, un systme
dexploitation. Jexpliquais quun systme dexploitation propose du stockage, un ordonnanceur,
des mcanismes de scurit... Le premier dfi, cest de pouvoir supporter des applications trs
diverses. Je pense que larchitecture actuelle [dHadoop] nest pas loin de permettre ce large
spectre dapplications.
Tout comme les systmes dexploitation qui nont pas vraiment chang depuis Windows?
Oui, pas dans leurs fondamentaux, depuis les annes 60. Ces fonctionnalits de base constituent
une plateforme sur laquelle vous pouvez dvelopper plusieurs applications diffrentes, qui dans
un certain sens partagent le matriel. En fait, cest un systme dexploitation Java qui sait se
faire discret et laisse les applications se partager le matriel.
On voit arriver des outils, comme Kafka pour lagrgation de logs sur plusieurs data centers,
Storm pour le traitement de flux, et tant dautres. Voyez-vous dautres usages de la donne
qui nont pas encore vu le jour ? On peut dj la rechercher, lindexer, la diffuser et la traiter
en temps rel
Nous pensons quil y a beaucoup dopportunits pour des applications plus verticales, trs
spcifiques, au sein des diffrentes industries. Des outils capables de traiter des images, des
donnes changeantes Il reste beaucoup de domaines qui ne sont pas encore outills. Sans
parler des applications intgres pour lassurance, la banque, etc.
Certaines entrevoient des modles commerciaux, dautres des modles open source. Pour
linstant, ce que les gens voient ce sont surtout des outils de bas niveau que lon peut combiner.
Je pense que de plus en plus, des outils de haut niveau vont profiter dimplmentations open
source, rendant universelle la plateforme sous-jacente. Le processus est dj commenc.
Table des
ma+ires
QUEST-CE QUHADOOP ? [ 8-17 ]
Les origines
Hadoop et Big Data,
une question dopportunits
Les gnes dHadoop
LE SOCLE TECHNIQUE
DHADOOP [ 18-35 ]
HDFS, un systme de fichiers
distribus
LCOSYSTME [ 36-53 ] MapReduce, un algorithme distribu
Open source, diteurs Dpasser HDFS et MapReduce
et gouvernance
Hadoop dans les nuages :
les acteurs du cloud
Lcosystme logiciel
HADOOP
AUJOURDHUI
ET DEMAIN [72-79]
Ds aujourdhui
Demain matin CONCLUSION [ 80-83 ]
Ds demain et pour les mois venir
Dans un futur proche
Ques+-ce
qu Had p?
Hadoop est n dans un contexte
particulier, celui de lmergence du
Big Data. Port par les Gants du
Web, il se dmarque radicalement
des logiciels et des bases de donnes
historiques du march.
OCTO > HADOOP - FEUILLE DE ROUTE
Les origines
Nous sommes en 2002. Deux ingnieurs, Larchitecture sous-jacente de Nutch NDFS
Doug Cutting et Mike Cafarella, dcident de et MapReduce sest avre assez gnrique
sattaquer un dfi de taille: rendre Lucene, pour justifier la cration dune plateforme
le clbre moteur de recherche open source part entire, dont Nutch ne serait quune
dApache, capable dabsorber le contenu application parmi dautres. Cest ainsi quen
des milliards de pages du web. Cest le 2006, le projet Apache Hadoop a vu le jour.
projet Nutch1. Leur inspiration sest porte Doug Cutting a entre-temps rejoint Yahoo!,
tout naturellement vers un modle vident : qui est un trs gros utilisateur et contributeur
Google, dont les labs ont publi en 2003 un dHadoop, et fait tourner en production
papier fondateur : The Google File System2. certains des plus gros clusters Hadoop
08 Sur cette base, ils ont construit NDFS, le Nutch mondiaux. Doug est aussi membre du comit
Distributed File System. NDFS, comme de direction de la fondation Apache.
son anctre GFS, est capable de stocker de
grandes quantits de donnes sur un grand
nombre de serveurs, de manire fiable.
09
Tous les cas dutilisation dHadoop illustrent Teradata. Cependant, ces solutions exigent
une motivation essentielle du Big Data : des investissements importants ds lors que le
exploiter plus de donnes, plus vite, quelles volume dpasse les quelques dizaines de t-
soient dj connues, ou issues de nouvelles ra-octets. Les nouveaux besoins suscits par
sources combiner aux existantes pour leur Big Data engendrent des quantits plus
donner un contexte plus riche. Souvent, les grandes encore, plusieurs centaines de t-
donnes disponibles ne suffisent ra-octets ou plus, et
plus. Les nouvelles sources de qui vont en aug-
donnes sont pour cette raison Le premier enjeu mentant. Cest l
souvent externes : externes au quHadoop rentre
dpartement ou lorganisation,
dHadoop est de stocker en jeu, avec ses ca-
voire compltement trangres et danalyser toute cette pacits de scalabili-
au domaine (mto, web, masse de donnes en t linaire de stoc-
rseaux sociaux, donnes de kage partir de
golocalisation, etc.). matrisant son budget. matriel courant.
MPP : Massive Parallel Processing. Le terme sapplique aux bases de donnes distribues sur des nuds indpendants ; lorsquune requte sexcute, elle est
dcoupe en tches indpendantes envoyes aux units de calcul. Un nud de coordination se charge de rassembler les rsultats et de les envoyer au client.
OCTO > HADOOP - FEUILLE DE ROUTE
14
Il est plus rapide denvoyer le code dun
programme (quelques Mo), que de rapatrier
plusieurs Go ou To de donnes travers le
rseau sur un serveur dexcution
Le commodity hardware
On entend souvent parler de commodity
hardware pour dsigner ces serveurs
Une appliance de bases de donnes est une solution clefs en main comprenant un logiciel de bases de donnes, pr-install sur une
plateforme matrielle conue et optimise exprs pour lui.
OCTO > HADOOP - FEUILLE DE ROUTE
Une explication en vido du principe de design for failure se trouve ici: https://www.youtube.com/watch?v=RO6GInqa-gU
Le socle
+echnique
dHad p
Grce ce chapitre, vous comprendrez tout
dHDFS, de MapReduce et de YARN, qui
constituent le socle fondamental dHadoop.
Toute la philosophie de larchitecture
dHadoop se retrouve dans ce triplet doutils!
OCTO > HADOOP - FEUILLE DE ROUTE
HDFS, un systme
de fichiers distribu
HDFS Hadoop Distributed FileSystem est en blocs rpartis sur les data nodes, il faut
la couche de stockage native dHadoop. Il bien stocker quelque part la liste des blocs
sagit dun systme de fichiers logique, avec composant un fichier donn, et leur localisation
la notion de rpertoires pour les lire ou pour
contenant des fichiers. appliquer la stratgie de
Physiquement, les fichiers colocalisation lorsquun
sont dcoups en blocs
HDFS a t conu pour traitement se lance. Ces
18
doctets, et rpartis sur les permettre les critures services dannuaire sont
nuds dun cluster. Ces par crasement ou ajout ainsi assurs par le name
nuds de stockage portent node.
le nom de data nodes. en fin de fichier, et non
Par abus de langage, on
les critures alatoires
Comme nous lavons vu dsigne par les mmes
prcdemment, les blocs en milieu de fichier. termes (data node et
de chaque fichier sont name node) les services
rpliqus afin dassurer la logiciels dHadoop (des
redondance en cas de panne, et de faciliter la dmons) et les rles que les serveurs jouent au
colocalisation des traitements et des donnes. sein du cluster.
La rplication se fait de manire intelligente,
en tenant compte de la topologie rseau On ne peut quand mme pas faire nimporte
configure : les rpliques dun mme bloc quoi avec HDFS. Hadoop ayant t conu avec
sont autant que possible hberges par des une logique de batch sur des trs gros fichiers,
nuds loigns , typiquement dans des cest dans ce cas nominal quHDFS est le plus
racks ou des sous-rseaux diffrents. Laccs efficace car il est optimis pour les parcourir
aux fichiers complets est ainsi garanti, mme dun bout lautre. Dans le cas dun grand
lorsquun quipement rseau tombe. Malin. nombre de petits fichiers, il est prfrable de
les regrouper en archives pour les traiter en
Lautre lment clef de larchitecture dHadoop blocs.
est le name node. Les fichiers tant dcoups
OCTO > HADOOP - FEUILLE DE ROUTE
En outre, HDFS a t conu pour permettre Il est important de noter que le name node
les critures par crasement ou ajout en fin de est le composant le plus critique dun cluster
fichier, et non les critures alatoires en milieu HDFS. Sil est perdu, et non rcuprable, alors
de fichier. Cette limitation sera leve dans le toutes les donnes hberges sur le cluster
futur. En attendant ces deux caractristiques ne sont quune soupe doctets inutilisable. Il
font quHDFS est un trs mauvais candidat pour est donc essentiel de le sauvegarder ou de le
remplacer un serveur de fichiers documentaire! rendre hautement disponible ; HDFS assure
Mais il est trs bon comme puits de donnes, nativement cette scurit.
structures et non structures. Comme un gros
(trs gros) DVD, il rpond au pattern WORM :
Write Once, Read Many.
19
Larchitecture logique dHDFS
Systme de
fichiers logique
/apps
/tmps
/users
...
OCTO > HADOOP - FEUILLE DE ROUTE
MapReduce,
un algorithme distribu
Description de lalgorithme splits impliqus. Il reste les combiner pour
obtenir le rsultat final du calcul: cest ltape
Le principe de MapReduce est simple : de Reduce, qui produit les fichiers rsultats.
MAP REDUCE
Dans certains cas, on peut avoir besoin de
lancer plusieurs tches de Reduce en parallle,
Diviser pour conqurir, et rassembler pour mieux rgner
afin dviter un goulet dtranglement dans
20
Lalgorithme fonctionne en deux temps. La la chane de traitement. Le cas chant,
premire tape, appele Map, consiste Hadoop sassure de la bonne affectation des
distribuer des traitements au plus proche des donnes intermdiaires aux diffrentes tches
donnes quils utilisent. La deuxime tape, de Reduce, afin de garantir la cohrence
Reduce, est charge de lagrgation du des agrgats finaux. Cette tape, ralise
rsultat final. Ltape de Reduce est facultative, conjointement par les mappers et les reducers,
par exemple lorsque aucune agrgation nest sappelle le shuffle & sort. Pour les amateurs
ncessaire. de plomberie algorithmique, lexemple donn
en encart explique cette tape plus en dtail.
En pratique, lors de ltape de Map, lalgorithme
interroge le name node pour savoir sur quels La colocalisation nest pas possible pour
data nodes les donnes dentre sont stockes. la phase de Reduce car, par construction,
Cette information prend la forme dune liste les tches de Reduce doivent rcuprer les
de splits, cest--dire densembles de blocs rsultats intermdiaires provenant de toutes
HDFS contigus avec pour chacun le data node les tches de Map, qui se sont excutes sur
hte. Le code du traitement est envoy tous des nuds diffrents.
les data nodes htes: chacun excute le code
sur les splits quil possde. Les traitements de Par consquent, ltape de shuffle & sort
Map sont excuts en parallle. est susceptible de mettre le rseau rude
preuve, notamment si toutes les tches de
lissue de ltape de Map, on dispose ainsi Reduce interrogent les donnes intermdiaires
dautant de rsultats intermdiaires quil y a de simultanment. Pour viter dintroduire de
OCTO > HADOOP - FEUILLE DE ROUTE
21
tape de Map
Dcouper lensemble des donnes
de dpart en N splits
Traiter les splits en parallle, tape de
sur des nuds diffrents. On obtient Shuffle & Sort
N paquets de donnes intermdiaires Distribuer
Cest quand on paralllise le plus, les donnes
que lespoir de gain est le plus fort ! intermdiaires tape de Reduce
aux reducers
Rassembler les N paquets
intermdiaires pour
les combiner, et produire
le rsultat final
MAPPER
SHUFFLE & SORT
MAPPER REDUCER
OUT
IN REDUCER
MAPPER
OUT
MAPPER
OCTO > HADOOP - FEUILLE DE ROUTE
EXEMPLE
Un traitement
MapReduce
Pour notre exemple, supposons que nous grions un site de e-commerce fort trafic. Dans ce
contexte, nous possdons normment dinformations sur les visiteurs du site, qui gnrent des
logs et dont les comportements de navigation donnent des informations intressantes sur leurs
pratiques de consommation et sur la pertinence du contenu du site.
Concentrons-nous sur les logs produits par les serveurs du site de vente en ligne dont voici un
extrait cibl sur un internaute en particulier:
22
ID
Adresse IP N de client Date Contenu Interprtation
de session (quand et heure de la en termes
linternaute HTTP il est de la requte de navigation
connu) requte HTTP
81.129.34.188 1a89b 2013-10-03 08:53:17 GET /accueil.php Un visiteur (anonyme pour linstant) arrive sur le site.
81.129.34.188 1a89b 2013-10-03 08:53:26 GET /catalogue.php Clic sur longlet Catalogue.
81.129.34.188 1a89b 2013-10-03 08:54:02 GET /catalogue.php?categorie=57 Recherche dans les catgories de produits.
81.129.34.188 1a89b 2013-10-03 08:54:31 GET /catalogue.php?categorie=176
81.129.34.188 1a89b 2013-10-03 08:54:58 GET /produit.php?produit=7364 Consultation dun produit.
81.129.34.188 1a89b 2013-10-03 08:55:09 GET /ajout_panier.php?produit=7364 Ajout au panier.
81.129.34.188 1a89b 2013-10-03 08:56:34 GET /login.php?origine=commande Le site exige dtre authentifi: il redirige vers la page de login.
81.129.34.188 1a89b 2013-10-03 08:57:06 POST /login.php?origine=commande Le visiteur se signe, on connat maintenant son ID client.
81.129.34.188 1a89b 99183 2013-10-03 08:57:07 POST /commande.php La commande est lance.
81.129.34.188 1a89b 99183 2013-10-03 09:00:41 GET /accueil.php Le client est redirig vers laccueil une fois la commande valide.
81.129.34.188 1a89b 99183 2013-10-03 09:00:41 GET /ajout_panier.php?produit=699 Il clique sur un produit mis en avant en page daccueil.
OCTO > HADOOP - FEUILLE DE ROUTE
Afin doptimiser nos campagnes marketing, nous cherchons mieux connatre les clients qui
abandonnent leurs commandes en cours de route. Pour cela, nous pouvons nous appuyer sur les
logs.
Pour faire cette analyse, nous choisissons dutiliser Hadoop et en particulier MapReduce car les
logs sont trop volumineux. Nous supposons que ces logs ont t accumuls sur le cluster.
Il nous faut dabord crire le programme danalyse. Pour cela MapReduce nous impose un cadre.
Hadoop ne saura pas parallliser magiquement nimporte quel programme que nous aurions
crit de manire squentielle.
Le programmeur fournit un programme mapper, qui sera excut par toutes les tches de Map
en parallle.
De mme, il peut fournir un programme reducer, qui sera excut par les tches de Reduce le
cas chant.
23
Les programmes mapper et reducer prennent en entre et mettent des enregistrements
modliss sous forme de paires (clef, valeur): avec MapReduce, tout doit rentrer dans ce moule,
que ce soit les donnes dentre, les donnes intermdiaires, et celles produites la fin en sortie.
Pour tre clair, nous distinguons dans le texte les programmes mapper et reducer (uniques et crits
par le programmeur) des tches Map et Reduce (lances en plusieurs instances par Hadoop).
Ici nous dcidons de garder lIP et le n de session comme clef: notre modlisation introduit la
notion de parcours sur le site. Quant la valeur, elle est compose de lID client et de lURL visite.
LID client ne doit pas faire partie de la clef car un parcours doit rester unique mme quand le
visiteur senregistre au milieu de sa navigation.
Nous navons pas besoin du timestamp (date et heure de la requte) car nos rgles sont
suffisamment simples pour s'en dispenser.
elles toutes, l'ensemble de nos tches de Map reoivent donc les lments suivants, parmi
toutes les autres entres de logs (la flche symbolise la structure de donne qui fait lassociation
entre une clef et sa valeur):
Nous avons mis en vidence un dcoupage possible en splits par Hadoop nous ne contrlons
pas ce dcoupage dans les programmes car il dpend des donnes dentre.
Le mapper, qui prend ces donnes en entre, doit mettre en retour des paires de clefs et de
valeurs. Dans notre cas, la clef reue en entre suffit pour notre besoin, inutile de la transformer.
Quant aux valeurs, on peut ce stade interprter les URL comme des vnements bien identifis.
On peut pour cela sappuyer sur un rfrentiel (le CMS du site), ou bien sur une liste code en
dur dans le programme.
Dans notre exemple simplifi, on en profite pour filtrer les URL qui napportent par dinformation
utile, comme les images ou les simples consultations du catalogue.
OCTO > HADOOP - FEUILLE DE ROUTE
Voici le rsultat en sortie des tches de Map, pour notre sous-ensemble illustratif:
Les instances de Map travaillant en parallle et ne se parlant pas, il na pas t possible ce stade
de rpercuter lID client (99183) sur lensemble du parcours: linstance Map 2 ne le voit pas du
tout passer.
Le rle de ltape de Reduce sera justement danalyser les parcours dans leur globalit. Mais on
ny est pas encore tout fait.
Les couples sont redirigs de manire dterministe partir des clefs: cest essentiel pour nous,
car cest cela qui va nous permettre de voir ensemble (dans une mme tche de Reduce) tous les
vnements de chaque parcours, pour dcider la fin sils aboutissent ou non une commande
par un client identifi.
Pour cette tape de distribution, Hadoop a besoin de trier les paires selon les valeurs des clefs
do le deuxime terme sort. Cest une ncessit technique qui dans certains cas savre
sympathique: les donnes darrive seront automatiquement tries.
Cest le fonctionnement du shuffle & sort qui explique pourquoi nous devons tout modliser
sous forme de paires (clef, valeur). Ce qui peut sembler contraignant au premier abord est en fait
ncessaire la paralllisation des traitements.
par juxtaposition des valeurs correspondant une mme clef. Chaque clef ne sera donc traite quune
fois. Dans notre cas, cela donne, pour notre parcours type (en gras) et quelques autres:
Ici, nous dcidons dajouter en plus le prix total de la commande perdue, en faisant appel un
rfrentiel produit:
Nous devons spcifier un format de sortie (output format). Ici, nous choisissons de produire du
CSV (Comma-Separated Value), exploitable par Excel ou R:
Faut-il une ou plusieurs tches de Reduce? Cest nous de choisir, en fonction de la manire dont
le rsultat final sera exploit. Avec un seul Reduce, nous obtenons un fichier rsultat unique, tri
sur les clefs grce au shuffle & sort. linverse, avec plusieurs Reduces nous obtenons plusieurs
fragments, tris localement mais pas globalement et quil faudra combiner pour obtenir le rsultat
final, ce qui demande un peu plus defforts. En revanche, plusieurs Reduces peuvent travailler
en parallle, sans introduire de goulet dtranglement dans le traitement: nous de trouver le
meilleur compromis. Ici, le tri global ne nous intresse pas. Nous pouvons nous contenter de
plusieurs fichiers que nous pourrons concatner sans difficult.
Cet exemple dmontre quil est finalement simple de traiter des donnes semi-structures (logs
web) et de relier des vnements squencs dans le temps (dtection de lID client en cours de
parcours).
Grce larchitecture Hadoop, ce mme programme peut tourner que vous ayez quelques giga-
octets ou plusieurs pta-octets de donnes.
27
OCTO > HADOOP - FEUILLE DE ROUTE
Larchitecture support
de MapReduce
Lalgorithme MapReduce sappuie sur plusieurs
Le ballet des dmons
fonctions de la plateforme Hadoop. Il a besoin: de MapReduce
dordonnancer les traitements,
JOB TRACKER
de connatre lemplacement sur le cluster des
fichiers traiter,
de distribuer lexcution sur les nuds de
calcul en fonction de leur disponibilit et des MAP OR REDUCE
TASK TRACKERS TASK
donnes quils dtiennent (colocalisation).
Dpasser HDFS
et MapReduce
De HDFS lAPI de stockage pensez un algorithme quelconque, et rfl-
chissez la manire dont il pourrait tre traduit
Sur Hadoop, laccs aux donnes est en MapReduce. On prend les paris que cela
avant tout une API Java, dont HDFS est vous prendra un certain temps!
limplmentation de base. LAPI expose les
services que nous avons voqus: stocker, lire MapReduce souffre dun autre problme, cette
et savoir o sont rpartis les morceaux dans le fois-ci li aux performances. Il ne prvoit en
30
cluster. Un fournisseur de solution de stockage tout et pour tout que deux phases de calculs
peut, par consquent, remplacer HDFS en (Map et Reduce), alors que de nombreux
exposant cette API en plus de ses API propres algorithmes un peu labors se dcomposent
habituelles. Il en existe quelques-uns, mais en plusieurs squences itratives, chacune
il faut avoir des besoins trs particuliers pour utilisant le rsultat produit par la prcdente.
quHDFS ne sache pas y rpondre! On voudrait parfois enchaner des sries de
Map et de Reduce, mais sans devoir soumettre
chaque fois un nouveau traitement au
YARN et Tez : vers une cluster. En effet, sur Hadoop, le dmarrage
plateforme de calcul distribu dun traitement a un cot: linstanciation des
N copies des mappers et reducers, et leur
Lalgorithme MapReduce permet dimplmenter
synchronisation pour enchaner les phases. Ce
de nombreux types de calculs, pour peu quils
cot est dautant plus grand, en proportion,
soient paralllisables. Premier problme ce-
que les traitements sont petits.
pendant, quand on dispose dj dun algorithme,
il peut tre difficile de ladapter pour le faire Prenons un exemple simple en apparence,
rentrer dans le moule MapReduce. Il faut le mais que naimera pas du tout MapReduce :
dcomposer en deux phases Map et Reduce, la recherche damis damis (damis) dans un
et trouver les bonnes reprsentations (clef, va- rseau social centr autour dune personne.
leur) pour crire chaque phase. Lapproche est Cela correspond lexploration dun voisinage
parfois trop contraignante pour donner lieu dans un graphe. La liste des voisins de premier
une implmentation intuitive. Faites le test : niveau se calcule avec un premier traitement
OCTO > HADOOP - FEUILLE DE ROUTE
MapReduce ; elle sert elle-mme donner les YARN signifie Yet Another Resource Negotiator.
points de dpart des voisins de niveau 2, qui Cest un framework qui permet dexcuter
serviront pour lexploration du niveau 3, etc. nimporte quel type dapplication distribue
Le surcot dun traitement est pay chaque sur un cluster Hadoop, application compose
couche de voisinage que lon traverse. dun processus matre (application master) et
de processus esclaves (containers) sexcutant
Ces deux problmes la rigidit du modle sur plusieurs machines. Avec Hadoop 2,
MapReduce et le surcot denchanement des MapReduce a t rcrit pour sexcuter sur
jobs ont conduit la communaut introduire YARN; il peut ainsi tre vu comme un cas
dans Hadoop 2 deux gnralisations de particulier dapplication YARN.
MapReduce: YARN et Tez.
AVANT AUJOURDHUI
HADOOP 1 YARN & HADOOP 2
RESOURCE APPLICATION
JOB TRACKER MASTER
MANAGER
MAP OR REDUCE
TASK TRACKERS TASK NODE MANAGER CONTAINER
Le processus orchestrateur de YARN sappelle historique grait des slots de tches abstraits,
le resource manager; il pilote le cluster quil fallait configurer la main, YARN pilote les
par lintermdiaire de node managers qui traitements en fonction de la disponibilit des
sexcutent sur chaque nud de calcul. Ainsi ressources physiques dune grosse machine
Le resource manager: virtuelle.
Lance lapplication master. Puisque MapReduce existe toujours, les
Pilote les node managers, qui leur tour programmes crits en Hadoop 1 pourront
lancent les containers. sexcuter au prix de quelques modifications
de paramtrage mineures.
Node Node
... importante. Le fait de voir les jobs comme des
manager manager DAG laisse la plateforme des leviers pour
Containers Containers optimiser globalement leur excution. Avec
MapReduce, cest au programmeur de le faire,
avec la contrainte denchaner des couples
Map Reduce. La diminution des accs disque
et llimination des tches inutiles ( passe-
YARN est donc bien le rejeton de MapReduce plats) sont encore dautres leviers de performance.
une fois que lon en a sorti tout ce qui sert Lexemple du voisinage damis, problmatique
lancer un calcul distribu, indpendamment pour MapReduce, serait un bon candidat pour
de lalgorithme. Pour gnraliser la notion de un unique job Tez.
calcul distribu, YARN voit le cluster Hadoop
comme un gros agrgat de mmoire et Pour les architectes techniques, il est important
de processeurs. L o MapReduce canal de comprendre ces volutions dHadoop,
OCTO > HADOOP - FEUILLE DE ROUTE
notamment pour dfinir larchitecture dune suivant quHadoop propose une panoplie
application et optimiser la performance du doutils qui masquent le formalisme de ces
cluster. Nanmoins, il est assez rare davoir frameworks au dveloppeur.
implmenter directement un algorithme avec
YARN ou Tez. Nous verrons dans le chapitre
33
Le mme traitement avec Tez, dans le cas favorable o des accs disques intermdiaires ne sont pas
ncessaires.
Le mapper passe-plats de lex-job (C) a t limin, rduisant encore la latence dexcution.
Lco-
sys+me
Hadoop est galement riche dun
cosystme en perptuelle volution
et, disons-le clairement, un peu touffu.
Visite guide dans la galaxie des
acteurs et des outils que tout bon
architecte ou dveloppeur se doit de
connatre.
OCTO > HADOOP - FEUILLE DE ROUTE
ct de ces acteurs-utilisateurs, il y a
galement des acteurs-distributeurs. Ils ont
choisi de packager la distribution canonique
Si lon met de ct les extensions,
dApache leur manire, en y ajoutant souvent
propritaires ou non, que chaque distributeur
des outils dadministration ou dintgration au propose, la gouvernance du cur du projet
SI. Ils contribuent galement au projet reste chez Apache. Cest bien la communaut
communautaire, en reversant une bonne partie dans son ensemble qui dcide des outils
de ces outils au monde open source. ce jour, inclure ou non dans la distribution canonique,
ainsi que de lvolution des API que certaines
les 4 grands acteurs-distributeurs du paysage
propositions dextensions peuvent ncessiter.
sont Hortonworks, Cloudera, Pivotal7 et
MapR. De grandes entreprises de lIT, comme
IBM ou Oracle, ont aussi leur distribution
Hadoop. Elles sont, pour certaines, bases sur
Pivotal vient tout juste de cder son offre logicielle Big Data la communaut open source. Hortonworks reprend le support commercial de la
distribution Hadoop. Voir http://blog.pivotal.io/big-data-pivotal/news-2/pivotal-and-hortonworks-join-forces-on-hadoop pour les dtails.
OCTO > HADOOP - FEUILLE DE ROUTE
Lcosystme logiciel
Hadoop est lui-mme un projet chapeau fonctionnel rapide de la plateforme, de lautre
regroupant une certaine quantit de projets on peut parfois se retrouver avec des initiatives
logiciels. Nous vous proposons un tour de ces concurrentes, y compris au sein dApache, ce
principaux projets, sachant quau moment o qui ne simplifie pas les choix des utilisateurs
vous lirez ces lignes il est fort probable quils
aient volu entretemps, tant le dynamisme des
initiatives qui gravitent autour dHadoop est fort.
Stockage de donnes
On peut distinguer 3 niveaux dans lcosystme > Des systmes de fichiers distribus
38 logiciel Hadoop: alternatifs HDFS
le cur (HDFS, YARN, MapReduce et Tez), Nous avons voqu plus haut la possibilit de
que nous avons dcrit largement dans la partie substituer des systmes de fichiers alternatifs
prcdente, HDFS. Il existe plusieurs implmentations
de lAPI HDFS dont voici les exemples les plus
la constellation Hadoop, compose de visibles.
projets open source gouverns pour la plupart
par la fondation Apache et dont le cycle MapR, dans sa distribution propritaire,
dvolution est fortement li celui du cur, embarque son systme de fichiers MapRFS.
Par rapport HDFS, MapRFS est la fois
la galaxie des initiatives tierces, en gnral plus complet et plus souple, avec comme
portes par des diteurs, soit qui enrichissent fonctionnalits principales le support des
les fonctionnalits dHadoop, soit qui proposent critures alatoires en milieu de fichier, et
des interfaces pour ouvrir Hadoop au reste du la rplication multi-sites en temps rel, utile
SI. pour assurer la continuit de service lorsquun
datacenter est perdu. Ces fonctionnalits
La tendance actuelle est linflation du nombre avances vont arriver sur HDFS dans les annes
dinitiatives. Les diteurs clefs jouent des venir, diminuant dautant lavance de MapR
coudes pour faire valoir la fois leur contribution sur ce crneau.
la constellation, et prendre des positions
avec le tampon de la fondation Apache. Dautres systmes de fichiers proposent une
Dun ct, cela contribue lenrichissement mulation HDFS. Citons Isilon OneFS (EMC),
OCTO > HADOOP - FEUILLE DE ROUTE
39
http://bigdatablog.emc.com/2013/07/25/not-sure-which-hadoop-distro-to-use-emc-isilon-provides-big-data-portability/
OCTO > HADOOP - FEUILLE DE ROUTE
> HBase, la base NoSQL dHadoop Comme lillustre lexemple ci-dessus, HBase est
particulirement adapt pour les catalogues o
Le transactionnel nest pas la vocation premire
les caractristiques de chaque produit varient
dHadoop qui, au dpart, a plutt t pens
par famille. Cest aussi une solution privilgie
comme une plateforme de traitement de
pour stocker un grand nombre de longues sries
fichiers par batch. HBase vient combler ce
de mesures ou dvnements : typiquement,
manque, en ajoutant la capacit de lire et crire
lhistorique des accs des utilisateurs un site
des donnes unitaires au format clef/valeur. Du
web grand public (comme sur le schma), ou
point de vue de lapplication, HBase est une
des mesures de capteurs application promue
base de donnes NoSQL calque sur BigTable
un bel avenir avec le dveloppement des
de Google. HBase et BigTable implmentent
objets connects.
le modle column family.
En ce qui concerne limplmentation, HBase
Ce modle permet ainsi de stocker au sein
sappuie sur HDFS pour stocker ses donnes
dune mme table des donnes structures
brutes. Il bnficie donc des avantages de ce
et semi structures. Cest une flexibilit
dernier : rplication, distribution sur plusieurs
supplmentaire par rapport aux bases de
40 nuds de stockage, et scalabilit.
donnes relationnelles.
Les enregistrements sont regroups en tables, et reprs par des clefs primaires. Chaque
enregistrement comprend un nombre arbitraire de colonnes regroupes en familles (column
families). Chaque colonne de chaque enregistrement stocke finalement un paquet doctets
(quivalent de BLOBs). Grce la flexibilit du modle en familles de colonnes, on peut stocker
dans une mme table des donnes htrognes, ici par exemple des donnes de capteurs et
des logs.
ETL (Extract, Transform, Load), ou sa variante ELT (Extract, Load, Transform) est une approche visant transporter de la donne dun systme un autre
en lui appliquant des transformations. Par extension, on dsigne ainsi les logiciels qui outillent cette approche.
Pour une discussion trs gnrale sur ce concept, voir http://fr.wikipedia.org/wiki/Systme_multi-agents.
OCTO > HADOOP - FEUILLE DE ROUTE
Intgration avec le reste du SI Des agents, placs au plus prs des sources,
vont capturer les vnements au fil de leau
Un des gros enjeux dune intgration dHadoop et les transporter vers Hadoop. Le dlai
dans le SI, est dinjecter la donne source dans entre la production et la prise en compte
le cluster, et den extraire la donne produite. des vnements en est rduit. Mais il est
Pour cela, on ne manque pas doutils! Nous ne de plus en plus clips par Apache Kafka,
prsentons ici que les principaux. un gestionnaire de messages distribu trs
performant qui a rcemment rejoint la troupe
Les plus simples sont les commandes en ligne
des outils Hadoop.
dHadoop (hdfs dfs): elles reprennent les
oprations classiques de manipulation de Apache Storm et Spark Streaming seront
fichiers (copie, suppression, renommage, etc.), appropris pour des traitements vnementiels
et ajoutent deux oprations, get et put, qui plus complexes, avec des calculs portant sur des
copient des donnes entre le systme de fichiers flux de donnes. Storm est issu du monde du
local et HDFS. En termes de fonctionnalits, on Complex Event Processing. Twitter, lorigine
est donc au mme niveau quun client FTP. de ce projet, la trs tt prsent comme le
41 MapReduce temps rel. Larchitecture de
Apache Sqoop va se charger dchanger avec
Storm sappuie sur des agents10 qui sexcutent
Hadoop des donnes de bases relationnelles:
de manire distribue en schangeant des
soit pour importer des donnes sources que
messages. Au dpart indpendant dHadoop,
lon souhaite traiter, soit pour envoyer vers un
Storm a t rcemment modifi par Yahoo!
datawarehouse classique le rsultat de tels
pour sexcuter sur YARN et pouvoir dposer
traitements.
des donnes sur Hadoop. Pour les scnarios
Les ETL et ELT offriront en plus des fonctions de type Internet des objets, Apache Nifi,
de transformation de donnes. Ce sont des rcemment acquis et mis en open source par
outils bien connus des aficionados de la Hortonworks, semble intressant mais il est
BI, et la plupart proposent maintenant des trop tt pour avoir un avis dfinitif dessus.
connecteurs Hadoop (par exemple Talend,
On peut rsumer les besoins dintgration,
Informatica, etc.). On bnficie ainsi de la
et les solutions associes par le petit tableau
richesse fonctionnelle des ETL : connecteurs,
suivant:
transformation, ordonnancement, monitoring.
Dans un contexte Big Data, et pour des
BATCH FIL DE LEAU
raisons de performances, on prfrera souvent
lapproche ELT dcrite plus bas9. ligne
TRANSPORT
de commandes Flume, Kafka
SIMPLE
sqoop
Apache Flume est loutil Hadoop historique
pour les donnes de type logs (logs applicatifs, TRANSFORMA- ETL / ELT Storm, Spark
TIONS Streaming, Nifi
serveurs web, infrastructure, monitoring,etc.).
OCTO > HADOOP - FEUILLE DE ROUTE
Noublions pas le squencement des traite- de manipuler des structures de donnes plus
ments: ragir larrive dun nouveau fichier, riches que les simples lignes et colonnes
le dposer dans le cluster, le transformer, des bases de donnes relationnelles. Cest
appliquer des algorithmes, exporter les rsul- lapproche schema on read que nous avons
tats Toutes ces tapes rptitives doivent dj voque.
tre enchanes au moyen dun ordonnanceur.
Pour cela, le standard sur Hadoop est Oozie. Il Un deuxime besoin est le requtage (interroger
ne remplacera pas un ordonnanceur de SI, du les donnes pour obtenir un rsultat). Au dpart,
type Control-M ou $U, mais pilot par ceux-ci le requtage sur Hadoop consistait en des
il prendra en main lexcution de workflows batches courts, de plusieurs minutes une
applicatifs. heure. Au gr des amliorations des outils, ces
temps de requtage se rapprochent de ce qui
est acceptable pour une utilisation interactive:
Requtage et transformation cest--dire de quelques secondes quelques
de donnes minutes. Ce mode daccs, qui tait intialement
La programmation fonctionnelle stricte fait oprer des fonctions sur des donnes, sans recours des variables globales. Variables globales et
paralllisme ne font pas bon mnage car la synchronisation exige des acrobaties compliques qui sont source de bugs et nuisent aux performances.
OCTO > HADOOP - FEUILLE DE ROUTE
rserv des cas dusage de reporting, souvre des designers graphiques de ces solutions pour
ainsi de plus en plus de la consultation dfinir des jobs de transformation de donnes.
interactive de donnes telle quofferte par
les bases de donnes relationnelles. La En conclusion, tous les outils que nous avons
compatibilit maximale avec le langage SQL mentionns ont en commun de simplifier le
(et donc avec les outils de reporting comme dveloppement, en ajoutant des fonctions
Business Objects ou Cognos) reste un enjeu de plus haut niveau que MapReduce. Ils
majeur, qui a t longtemps sous-estim, et prennent galement en charge une partie
pour lequel des rponses se dveloppent. des optimisations quun dveloppeur devrait
autrement faire sur du code technique
Voyons les outils les plus connus rpondant MapReduce. Ils sont donc un acclrateur
ce double besoin de transformation et de important pour dvelopper des flux et des
requtage. transformations.
Hive, Impala, Drill, Kylin, Hawq, Presto et Une requte Hive complexe sur Hadoop 1.X,
dautres, quant eux, ont lambition dexcuter donc sans les optimisations des initiatives en
cours.
en temps interactif des requtes en langage
SQL (syntaxe et expressivit), en y ajoutant la 10 min
possibilit de traiter des donnes semi-structures. Une requte Hive complexe avec ltat actuel
Sans entrer dans les dtails, prcisons que les des optimisations.
architectures de ces outils sont trs diffrentes.
1 min
La compatibilit avec les normes SQL est
encore imparfaite, mais lcart se rduit car les Lobjectif de performances pour des requtes
interactives, thoriquement atteignable avec
diteurs ont compris le besoin crucial
les architectures actuelles.
dinteroprabilit avec les outils de BI. Bien
1s
que tous open source, ces outils sont en gnral
ports par des diteurs en comptition sur le Une requte transactionnelle HBase ou sur un
crneau du requtage SQL interactif. SGBD classique. Et les performances du futur
Hive, avec les promesses des diteurs pour 2015.
Enfin, un nombre toujours croissant dETL On ny est pas encore tout fait
ajoutent leur palette de connecteurs la capacit
sinterfacer avec Hadoop. On bnficie alors
OCTO > HADOOP - FEUILLE DE ROUTE
45
Rien dimpossible mais voici un papier qui donne une ide de leffort fournir pour ladaptation sur MapReduce :
http://www.cs.stanford.edu/people/ang//papers/nips06-mapreducemulticore.pdf.
OCTO > HADOOP - FEUILLE DE ROUTE
le champ libre des frameworks plus simples encore NLTK (traitement du langage). Ces
comme SparkML (ou Spark MLlib), issu de librairies sont regroupes sous la distribution
lcosystme de Spark. Anaconda de Python.
Le langage R est aussi capable de sinterfacer SAS, diteur de logiciels scientifiques, dveloppe
avec un cluster Hadoop, via des packages. actuellement des moteurs dexcution Hadoop.
Ceux-ci sont dassez bas niveau cependant, et Ils ne sont pas encore finaliss ce jour. Notons
les scripts qui tournent sur vos laptops ne se aussi que de plus en plus de data scientists se
laisseront pas porter sans modifications. Les tournent vers R aux dpens de SAS.
packages les plus connus sont:
Le search
Le search est un usage encore balbutiant sur
Spark, Python ou R, quel Hadoop. Il sagit ici doffrir une interface de
sera le langage des data type moteur de recherche, permettant de
scientists demain ? retrouver instantanment des documents
stocks sur un cluster, parmi plusieurs tra-
R, le plus riche, est trs utilis dans le ou pta-octets de donnes plus ou moins
monde universitaire, avec une communaut structures. Par exemple, un entrept de
qui contribue normment au corpus de donnes pourra indexer toutes les donnes
packages, pour nombre de disciplines relatives des clients, quelle que soit la source:
scientifiques.
CRM, messageries des conseillers, archives
Python a pour lui le fait dtre un documentaires, etc. La fouille de mtadonnes
langage de programmation complet. Et (qui a accd quel contenu, quand, etc.) est
cest bien connu, les data scientists sont un autre cas dusage intressant pour le search.
aussi des geeks. Il est aussi plus facile
47 dintgrer Python avec Hadoop en Les diteurs de distribution Hadoop ont tous
phase dindustrialisation. adopt la mme stratgie: intgrer un moteur
Spark, prend du galon chez les geeks; de recherche existant, SolR, leur offre
son langage de base, Scala, est peut-tre logicielle Hadoop. Cette intgration prend
un peu ardu pour les data scientists qui la forme de connecteurs, capables de lire
nont pas un pass de dveloppeurs. ou dcrire des fichiers dindex SolR dans les
Mais il sintgre trs bien avec le traitements.
gestionnaire de ressources dHadoop,
YARN. On pourrait sattendre une intgration avec
ElasticSearch, plus en vogue que SolR, mais
Comme souvent, il ny a pas de
faute daccord entre les diteurs respectifs,
vainqueur absolu. Il sagit dutiliser la
cela ne sest pas pass ainsi. Des connecteurs
technologie approprie au problme
donn. Nous utilisons beaucoup R et existent toutefois, mais sans intgration avec
Python en data science exploratoire; YARN ce jour : les donnes indexes avec
Spark, par son intgration forte avec Hadoop doivent tre copies vers le cluster
Hadoop, est plus intressant ds lors ElasticSearch.
que lon veut mettre des traitements en
production. Et nous gardons un il sur
Flink, qui se veut une alternative
Spark optimise aux petits oignons
OCTO > HADOOP - FEUILLE DE ROUTE
Kerberos est un protocole dauthentification forte : en dautres termes, il garantit des utilisateurs accdants, des comptes de service et des
machines, tous en interaction, que chaque protagoniste est bien celui quil prtend tre.
OCTO > HADOOP - FEUILLE DE ROUTE
Ainsi Cloudera promeut Apache Sentry et Navigator, tandis quHortonworks pousse Apache Ranger, ex-Argus, et le trs embryonnaire Apache Atlas.
Sentinelle des mers ou gant garde forestier, choisis ton camp!
OCTO > HADOOP - FEUILLE DE ROUTE
Quelle organisation
pour oprer
des clusters Hadoop ?
Hadoop est la fois une technologie et une scientists bnficieront eux aussi de nouveaux
plateforme multi-usages, et suscite lui-mme outils disposition et susciteront des use cases
de nouveaux usages ceux de Big Data. Un innovants. Ils croiseront des donnes qui nont
changement se produira tous les niveaux: pas lhabitude de ltre, parce quelles rsident
54 dans des silos aujourdhui cloisonns; pour
Les tudes informatiques et les quipes cela ils devront faire bouger les frontires
dcisionnelles (BI) devront se former la panoplie dorganisation internes lentreprise.
doutils que nous avons
vus dans la partie pr- Ds lors, on se pose la
cdente. Un premier cluster question de lorganisation
mettre en place pour
Les architectes devront
Hadoop en production, que tout ce petit monde
matriser cette plateforme cest au moins 3 ETP collabore dans ce contexte
complexe. Cette comp- pour lexploitation compliqu et mouvant.
tence leur permettra de Cest que la bte ne se
et le soutien aux projets.
choisir les outils adquats laisse pas facilement mener
dans un cosystme par la trompe
mouvant, doptimiser les
Il va dj falloir faire face une maturit ingale
traitements et daider au dbogage. Ils joueront
des composants. Certains sont instables,
aussi un rle crucial dans les projets dintgration
certains peine mergents, notamment dans
de la plateforme avec le reste du SI.
les couches hautes de larchitecture o sont les
La production devra tre prte construire attentes des utilisateurs finaux. Le tout volue
des clusters dun type nouveau, superviser allgrement un rythme soutenu. Un travail de
de nouveaux logiciels. veille permanente est donc indispensable, il
ne faut surtout pas ngliger son ampleur! Les
Les mtiers, les data miners et les data quipes auront besoin de temps pour cela.
OCTO > HADOOP - FEUILLE DE ROUTE
Le processus
dadoption
Premires tapes maturit suffisante pour voir apparatre les
premiers cas innovants. Lavenir rserve encore
Hadoop est luvre depuis prs de 10 ans de belles surprises!
chez les Gants du Web et les entreprises
Il y a deux approches possibles. Lune et lautre
amricaines. En Europe et notamment en
sont valables, et nous accompagnons des
France, on observe un dcalage. cette date
clients sur les deux.
56 (fin 2015), de nombreuses organisations ont
men des exprimentations, parfois pousses. Le premier chemin passe par un POC (Proofs
Les start-ups et certaines entreprises la of Concept) dinnovation mtier. Une nouvelle
pointe (dont de grandes organisations) ont ide tester, un nouvel emploi des donnes
dj Hadoop en production, parfois sur des du SI, le rapprochement avec des donnes
processus critiques. externes susceptibles dapporter un nouvel
clairage votre activit? Profitez-en, qui dit
On peut faire tant de choses nouveau besoin dit nou-
avec cette plateforme si velle solution, et cest
complexe, quil est difficile Lapproche mtier bouscule peut-tre loccasion de
de savoir par o commen-
cer. Lastuce est de lintro-
les processus IT, pour faire monter Hadoop sur
duire par tapes, ce qui assurer la mise disposition scne. Du fait de la double
nouveaut mtier et tech-
permet de se familiariser rapide des donnes, des nique, la mise en uvre de
avec la technologie, et de
outils et des infrastructures. ce POC ncessitera une
laisser la DSI adapter ses collaboration troite entre
processus un nouveau les quipes mtier et IT.
type denvironnement. Cest une route jalonne
dtapes, de victoires mme. Bien sr, il y a Contrairement au premier, le deuxime chemin
quelques embches mais notre exprience peut et doit tre guid par lIT. Il sagit ici
nous montre que la solution mais aussi les doffrir lentreprise un entrept de donnes
entreprises sont entres dans une phase de riche, outill pour susciter des POC, ce que
OCTO > HADOOP - FEUILLE DE ROUTE
l'on appelle souvent un data lake. Pour veiller Garder une profondeur dhistorique indite
lintrt, le data lake doit satisfaire quelques en vitant les compromis sur le stockage.
critres qui le diffrencient du premier
datawarehouse venu. Citons-en quelques-uns: Dmontrer que la plateforme apporte
autant, moindre cot, que les outils
Mettre ensemble des donnes que lon na habituels du SI ou plus pour le mme cot.
pas lhabitude de rapprocher : des donnes Dans beaucoup dorganisations, crer un
provenant de plusieurs mtiers, des donnes entrept de donnes relationnel demande de
externes, des donnes oublies comme les longs mois, en particulier cause de ltape
logs ou les emails, etc. centrale de modlisation. Avec Hadoop, vous
pouvez mettre trs vite des donnes brutes
Offrir un vaste choix de connecteurs ou disposition de vos utilisateurs, et reporter
doutils, pour permettre lexploration, lanalyse, plus tard ltape de modlisation en la lissant
la modlisation, la visualisation, etc. en intressant dans le temps.
des acteurs diffrents.
57
59
OCTO > HADOOP - FEUILLE DE ROUTE
Choisir sa distribution
La multiplicit des distributions et des acteurs Les outils spcifiques apports par chaque
Hadoop est un fait. Le choix dune distribution diteur sa distribution, mettre en regard de
est videmment compliqu, dautant quon vos besoins. Il faut savoir que ces outils ne sont
nen change pas facilement aprs coup. Et pas facilement portables dune distribution
cest aussi le choix dun diteur, dont vous allez lautre et ne seront pas supports par les
plus ou moins dpendre. autres diteurs15.
Cette situation pourrait voluer prochainement, avec le lancement tout rcent de Open Data Platform (http://opendataplatform.org/), un effort de
standardisation des couches basses dHadoop. Plusieurs gros diteurs adhrent linitiative, lexception notable de Cloudera. Lavenir nous dira si
cela suffira rendre les outils de haut niveau portables dune distribution lautre.
Les grands diteurs Hadoop avec quelques critres de choix
GNRALISTES
Projet gnraliste
Au dpart issu du rapprochement dEMC et de
Intgration avec le catalogue
GoPivotal VMWare, GoPivotal a t cd Hortonworks.
dEMC (Greenplum) et VMWare
Projets phares : Hawq
(GemFire, SQLFire).
SPCIALISES
Projet sur le cloud pour une Cette distribution a t implmente sur Azure en
Microsoft Azure HD entreprise Microsoft. partenariat avec Hortonworks. Une compatibilit
Insight Traitement de donnes stockes complte avec la souche open source est annonce
sur le cloud Azure. ( prouver sur cas rel).
Linfrastructure
physique
Des serveurs pour excuter Tudidu, nous vous prions de nous excuser pour
des services la gne occasionne (en mme temps, on ny
peut rien !).
Nous parlons beaucoup de services (name Cette mise au point tant faite, on classe les
nodes, data nodes, resource manager, etc.), serveurs en 3 groupes:
de serveurs et de nuds, en utilisant les trois
termes tour de rle. Ils ne sont pas toujours Les master nodes excutent les services
62 utiliss bon escient dans la littrature centraux dHadoop, ceux qui se retrouvent
Hadoop, mais nous avons choisi de respecter en un exemplaire, voire deux quand ils sont
les usages, quitte entretenir une certaine redonds : name node et son backup, resource
confusion. Explicitons-les. manager, HBase Master, etc.
Un serveur est une machine (physique ou Les slave nodes excutent les services
virtuelle) faisant partie du cluster. Facile. ncessaires au stockage et au calcul : data node,
node manager, rgions HBase et containers
Un service est un processus qui tourne sur un phmres crs par les traitements.
ou plusieurs serveurs, et participant larchitec-
ture logicielle dHadoop. Pas dambigut. Les edge nodes enfin portent tous les
services priphriques qui servent interagir
Un nud est un serveur. Easy, sauf que on avec le cluster, sans en constituer le cur. On
parle de data nodes et de name nodes depuis y retrouve les serveurs Oozie, Hive, les outils
le dbut. Ces noms sont trompeurs car ce dadministration ainsi que des espaces de
sont bien des services ; ils ne sont jamais tous stockage tampon (fichiers et SGBD) et des
seuls sur un nud. Dans la suite, un master canaux daccs comme FTP, SSH, etc.
node, slave node ou edge node est bien un
serveur. Sur le web et dans la littrature, vous Par simplicit, nous avons omis les composants
trouverez tout de mme les confusions name plus techniques qui servent au fonctionnement
node / master node et data node / slave node. interne du cluster (par exemple la gestion
Ce nest pas gnant car le contexte empche de la haute disponibilit, ou les agents de
toute mprise. monitoring).
OCTO > HADOOP - FEUILLE DE ROUTE
Les edge nodes ont un super pouvoir : on peut propre. Chacun peut ainsi choisir ses versions
les multiplier sans toucher au cur du cluster. ou patches doutils priphriques, ajouter des
Mais pourquoi le ferait-on ? Eh bien si plusieurs outils tiers dont il possde la licence, ou disposer
quipes ou services utilisent le cluster, il peut de son propre SLA vis--vis de lexploitant.
tre intressant que chacun ait son edge en Tout en souplesse
Les clients
63 arrivent par ici !
Hue
Oozie server
Name node Standby name node Metastore
Resource manager Hive Server 2
Zookeeper
HBase master Ganglia & Nagios servers
Zookeeper IHM de gestion/config.
Espace tampon
Data node
Data node Data node
Node manager
Node manager Node manager
Zookeeper
OCTO > HADOOP - FEUILLE DE ROUTE
4 x 1 To : 2 cartes :
1 disque pour 1
quelconque
Master le systme pour les accs
4 curs 96 Go
node dexploitation administratifs
65 les autres monts 1 1 Gb/s pour
en RAID16 le trafic Hadoop
6 x 1 To : 2 cartes :
1 disque pour 1
quelconque
Slave le systme pour les accs
6 curs 96 Go
node dexploitation administratifs
les autres monts 1 1 Gb/s pour
en JBOD17 le trafic Hadoop
Redundant Array of Inexpensive Disks : plusieurs disques sont monts en redondance pour garantir de ne pas perdre de donnes en cas de dfaillance
dun disque. Le name node, sur un master, maintient le plan du systme de fichiers HDFS, plan quil ne faut surtout pas perdre.
Just a Bunch Of Disks : plusieurs disques sont monts indpendamment pour totaliser un grand volume de stockage. On ne cherche pas fiabiliser les
disques comme avec du RAID, car HDFS rplique dj naturellement les blocs de fichiers.
OCTO > HADOOP - FEUILLE DE ROUTE
67
OCTO > HADOOP - FEUILLE DE ROUTE
EXEMPLE
Dimensionnement
Supposons que le besoin, tel quil est connu rvise slve 12 x 6500 = 78000. Cest
aujourdhui, vous conduise estimer une taille toujours moins cher que les 10 Modles B :
de donnes sur HDFS 15 To, soit 3 x 15 = 45To adjug!
rels en tenant compte du facteur de rplication
habituel. Aprs examen du catalogue, vous Et si un jour le cluster doit grandir, et que les
avez retenu deux modles candidats: Modles A ne soient plus au catalogue pour
cause dobsolescence ? Aucune importance,
Le Modle A, qui dispose dun CPU Hadoop se satisfait trs bien de serveurs
quadricur 2,25 GHz, de 128 Go de RAM et htrognes.
pouvant accueillir 6 disques de 2 To chacun. Il
vous coterait 6000 lunit. Un peu plus de dtails
Le Modle B, qui dispose dun CPU Les indications ci-dessus sont volontairement
quadricur 2,5 GHz, de 256 Go de RAM, trs gnrales. Nous faisons un apart pour
68
pouvant accueillir 10 disques de 1,5 To chacun, expliquer grossirement comment sont construites
pour la modique somme de 8500 par serveur. de telles abaques.
Pour stocker vos 45 To, il vous faudrait donc soit: Il faut voir un cluster Hadoop comme un
ensemble de ressources. Les CPU, mmoire et
12 Modle A pour un cot total de 72000, disques de chaque slave node vont cooprer
avec 3 To rels de marge. pour mener bien les traitements demands.
Pour que ces traitements soient efficaces, il
10 Modle B pour un cot total de 85000,
faut limiter les goulets dtranglement. La
avec 5 To rels de marge.
paralllisation sur plusieurs nuds, par exemple
Vous dcidez quune marge de 3 To est avec un algorithme MapReduce, est un premier
suffisante pour dmarrer, il semble donc plus niveau doptimisation; encore faut-il que les
intressant de choisir les Modles A malgr les serveurs eux-mmes soient efficaces.
2 serveurs de plus.
Un slave node va excuter plusieurs containers
Aprs quelques semaines dutilisation, les en mme temps, typiquement autant de
chiffres montrent que les 128Go de RAM par containers que de curs de CPU prsents
nud sont un petit peu justes compte tenu sur la machine (moins 1 si on tient compte
des traitements excuts sur le cluster. On vous du systme dexploitation qui a besoin dun
propose dquiper les serveurs avec 192Go de cur pour ses affaires). Au-del, les containers
RAM la place, pour un cot unitaire de 500. se trouveraient bloqus par la pnurie de
Cette quantit vous convient, et la facture puissance de calcul.
OCTO > HADOOP - FEUILLE DE ROUTE
Ds aujourdhui :
des modles de programmation
plus varis que MapReduce
Attention, certains outils ne proposent pas encore de mcanisme de scurit sur les donnes quils manipulent ; cest notamment le cas de Storm,
Spark et SolR. Bien sr, il est prvu terme quils le proposent, mais en attendant, vous tes prvenus...
OCTO > HADOOP - FEUILLE DE ROUTE
Demain matin :
le multi-tenant
Hadoop est un trs bon candidat pour une offre doutils et de connecteurs suffisante
plateforme multi-tenant dentreprise. Par pour laisser de lautonomie aux utilisateurs. Le
multi-tenant, nous entendons un systme support de SQL et des connecteurs xDBC sont
hbergeant les donnes de plusieurs entits, le minimum.
et servant plusieurs clients au moyen dune
offre de services logicielle adapte, dans des Une bonne exploitabilit, par le biais doutils,
scnarios de restitution, de transformation ou dAPIs et de reportings suffisants, et bien sr
denrichissement des donnes. dune architecture robuste.
73
La bonne nouvelle, cest que le soldat Hadoop
Cette dfinition simple en apparence prsuppose mrite dj ses galons. Sil fallait juger de la
un certain nombre de choses : maturit de la plateforme, voil ce que cela
Un stockage lastique distribu, capable de donnerait:
saccomoder de donnes structures et non
structures avec des grandes profondeurs Stockage lastique distribu
SUPER MATURE !
dhistorique.
Ds demain
et pour les mois venir:
fiabilisation et scurit
Difficile de le cacher: Hadoop est encore dans Le gros point de complexit est aujourdhui la
sa prime jeunesse. Et il nest pas tout fait fini. scurit. Non quelle ne soit pas bien gre, les
Nous avons hsit vous faire cette confidence outils sont l et fonctionnent raisonnablement
de peur que vous ne dtourniez votre chemin, bien! Cependant, cest un sujet compliqu
75 ce qui serait dommage. Car on peut dj faire qui demande une expertise forte, de
beaucoup de choses avec Hadoop de faon linfrastructure la gouvernance en passant par
fiable, ds que lon reste sur les sentiers battus. lautomatisation des scripts de provisioning.
Sur des infrastructures distribues, donc
En revanche, ds que lon sen loigne, il faut complexes, avec un outillage de supervision
tre prt relever ses manches et mettre les encore trs bas niveau, le diagnostic des bugs
mains dans le cambouis. Et dans ce cas, on et problmes rencontrs relve beaucoup de
aura plus besoin du bricoleur de gnie que lacrobatie de haute voltige.
de larchitecte TOGAF. Enfin, quand on dit
du bricoleur, il faudrait plutt parler des Il faut tre cependant conscient que la situation
bricoleurs. s'amliore de jour en jour (mme si on peut
regretter que les diteurs de distribution
Par exemple, sur un gros projet industriel soient plus concentrs sur la course la
bas sur une plateforme Hadoop multi-tenant fonctionnalit que la course la fiabilit), et
dans lequel nous avons tremp, ce nest qu'il est dangereux d'attendre des lendemains
pas moins de 5 7 personnes quil fallait en meilleurs si vous avez des use cases pertinents.
support (moiti en dveloppement, moiti en Les outils de scurit dentreprise chiffrement
exploitation) pour arriver faire fonctionner la des donnes HDFS, intgration une PKI
bte au quotidien. Par comparaison, si tout externe sont l et ne demandent quun peu
avait t sur un SGBD Oracle classique, on sen de temps pour tre prouvs. Ds prsent,
serait sorti avantageusement avec 1 seul DBA. rien n'est impossible : avec de l'huile de coude
Oui, mais quel potentiel en comparaison et de la persvrance, on arrive surmonter
(ou au pire contourner) tous les obstacles.
OCTO > HADOOP - FEUILLE DE ROUTE
Le site dOpenStack est accessible cette adresse : http://www.openstack.org/, et celui de Sahara celle-ci : https://wiki.openstack.org/wiki/Sahara
OCTO > HADOOP - FEUILLE DE ROUTE
moyen terme :
vers une plateforme universelle?
Un certain nombre damliorations dHadoop une quantit dusages dits classiques pour
ont t mises en uvre pour transposer lesquelles les architectures actuelles (SGBD,
les fonctions des outils classiques dans le ETL, ESB, serveurs dapplication, etc.) font
domaine du Big Data. Par exemple, concernant trs bien laffaire, un cot bien moindre. Ces
le machine learning, la communaut a uvr architectures sont aussi bien mieux matrises
pour doter Hadoop dinterprteurs SQL par les DSI; Hadoop nest pas prt de les
suffisamment performants pour permettre remplacer. Mais il est vrai que, ds lors que
le requtage interactif ce que les bases ces architectures atteignent leurs limites
77
relationnelles font depuis longtemps. de scalabilit, Hadoop est une alternative
conomiquement crdible.
Dans la continuit de cet effort, il sera
bientt possible de faire des mises jour
transactionnelles des donnes gres (voir
par exemple, les projets Hive Streaming20 et
Les architectures lambda,
Kudu21, encore ltat dbauches). Nous
ou comment concilier temps
mettons transactionnelles entre guillemets, rel et Big Data
car on reste loin des principes ACID des bases
Cest une promesse a priori irralisable : vouloir
de donnes relationnelles. traiter des donnes trs rapidement en faisant
des calculs des historiques trs volumineux.
Et ces amliorations se font en parallle des
Une architecture lambda22 rsout ce dilemme
vraies innovations que sont le traitement des en prcalculant priodiquement des rsultats
donnes non structures, le machine learning, partiels, qui sont ensuite complts avec les flux
labsorption des trs hauts dbits du futur de donnes temps rel. Hadoop, avec le support
monde de linternet des objets des workloads multiples, est un bon candidat
pour une plateforme unique et fiable hbergeant
Plus gnralement, le choix grandissant des les deux couches.
frameworks et des workloads peut laisser Attention quand mme, les architectures lambda
penser quHadoop rpondra tous les besoins sont avant tout un concept. Le diable est cach
de lentreprise. Cest un peu exagr: il reste dans les dtails, et un rel travail darchitecture
doit tre men pour formaliser les enjeux de
https://cwiki.apache.org/confluence/display/Hive/Streaming+Data+Ingest latence, de tolrance la panne, de rejet de
http://getkudu.io messages, etc.
Le site de rfrence de ce pattern se trouve ici : http://lambda-architecture.net/
Conclusion
Si Hadoop est ds aujourdhui prt
pour de la production, il na pas
encore atteint son plein potentiel.
Sa gouvernance particulire, son
cosysme dditeurs-partenaires en
font un outil en perptuelle volution,
sans cesse en train de sadapter aux
nouveaux dfis techniques de Big Data.
OCTO > HADOOP - FEUILLE DE ROUTE
Il est urgent
de ne pas attendre
En tant que plateforme de stockage et de Elle suscite aussi de la mfiance, parfois. Faire
paralllisation de traitements, Hadoop est reposer sa stratgie digitale sur un data lake
aujourdhui mature. Les Gants du Web ont qui excute un logiciel open source peut faire
construit un cosystme extrmement riche, tiquer, alors que notre culture nous pousse
dune stabilit suffisante pour des usages prendre le moins de risques possibles. Quant
en production. Ils navaient pas le choix : aux fonctionnalits entreprise, telles la
80 eux-mmes ont besoin scurit, la gouvernance de
dHadoop au quotidien, la donne et les backups,
ils sont donc les mieux Le futur dHadoop, cest elles ne sont pas encore
placs pour amliorer la au niveau de ce quune
plateforme. Eat your own
un service de calcul la organisation attendrait dun
dogfood, dit-on l-bas. demande, polyvalent, diteur bien install. Et il
o Big Data et les technologies affrentes la plateforme maintenir (ou du service cloud
(machine learning notamment) montrent tout utiliser) pour traiter le problme en temps
leur pouvoir. Les cas dusage sont infinis et voulu. Cela dpend la fois de vos enjeux
senrichissent des nouvelles ides suscites par mtier, de la nature du problme et de sa
les nouvelles capacits de calcul. La plateforme nature ponctuelle ou rcurrente.
et lcosystme continueront dvoluer pour
81 permettre leur mise en uvre. Quoi quil en soit Hadoop est promis un bel
avenir. Cest une plateforme de rfrence, elle
Mais le plus excitant, selon nous, ce sont samliore sans cesse et peut-tre cette
les applications concrtes qui vont fleurir brochure sera-t-elle dj obsolte au moment
demain, rendues possibles par la richesse de o vous la lirez?
cet cosystme et par la part grandissante
du traitement in-memory. Cest vraiment
ce moment-l quHadoop prendra son envol,
quittera son pass dexcuteur de batch
spcialis pour devenir un socle dapplications.
Le mot de la fin:
quand llphant
fait lours
Ce livre blanc est le fruit de 2 ans de travail et
laboutissement de 5 ans de veille sur Hadoop et Big
82 Data. Pendant tout ce temps, nous avons dcortiqu
Hadoop, nous lavons install chez nos clients, nous les
avons forms et leur avons mis le pied ltrier, nous
avons tiss des liens avec les diteurs, nous avons donn
des confrences et nous avons ralis cet ouvrage!
OCTO Technology
Nous croyons que linformatique transforme
nos socits. Nous savons que les ralisations
marquantes sont le fruit du partage des savoirs et
du plaisir travailler ensemble. Nous recherchons
en permanence de meilleures faons de faire.
83
THERE IS A BETTER WAY!
Manifeste OCTO Technology
STORM CASCADING
C
HBASE FLUME NG KUDU
FLINK M
SPARK HIVE
KAFKA ACCUMULO STREAMING FLINK SQUEAL STREAMING DRILL
H M
INTERACTIF
H C
SPARK GraphX
PHOENIX DRILL
ON HBASE
HIVE IMPALA
SPARK TEZ
CASCADING FLINK PIG ON TEZ SPARK SPARK SQL soIR FLINK SPARK ML
H
SPARK GraphX
BATCH
TEZ
MAP REDUCE YARN
GIRAPH
FLINK ML
SQOOP HIVE
FLINK
CRUNCH
HADOOP FLINK
HDFS CASCADING SPARK STREAMING PIG FLINK soIR MAHOUT GELLY SPARK ML
H H H C
C OOZIE
LIGNE DE
COMMANDES
C SENTRY
H GANGLIA NAGLOS
H H
H
LIGNE DE WEB HDFS/ ACL HDFS
COMMANDES HUE WEBHCAT HTTP FS KERBEROS & YARN ATLAS FALCON AMBARI AMBARI METRICS
H M C
Hortonworks MapR Cloudera Projet au stade Pas mature ou Mature et intgr, Mature, prouv
alpha partiellement mais pas totalement et robuste
intgr Hadoop prouv
www.octo.com - blog.octo.com
Dpot lgal : dcembre 2015
Conu, ralis et dit par OCTO Technology,
50 avenue des Champs-lyses - 75008 Paris.