Anda di halaman 1dari 86

HADOOP

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.

Vous attendiez-vous un tel impact ?


Non, pas du tout.

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.

Qui fournit des abstractions, comme le rappelait Jim Baum.


03
Exactement.

Pour faire face la complexit.


Cest l, je crois, un rle quHadoop joue de plus en plus. Je suis conscient que cela demandera
un changement radical darchitecture. Peut-tre verra-t-on merger des systmes de fichiers
alternatifs [ HDFS] On verra.

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 DANS LE SI [ 54-71 ]


Quelle organisation pour oprer

des clusters Hadoop ?
Le processus dadoption

Choisir sa distribution
Linfrastructure physique

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.

Le problme du stockage rsolu, restait Mais do vient le nom


transformer le systme en un vritable si curieux de ce logiciel ?
moteur de recherche, et donc lui ajouter
un mcanisme dindexation. La solution est Mais do vient le nom si curieux de ce logiciel?
De la mythologie? De la science-fiction? Non,
venue peu de temps aprs, en 2004, avec ce
dun babillage denfant. Doug Cutting raconte
qui allait devenir le deuxime papier fondateur que son fils avait une peluche en forme dlphant
dHadoop : MapReduce : Simplified Data jaune, quil avait baptise Hadoop. Lenfant
Processing on Large Clusters3. Les auteurs devenu grand doit sourire en voyant le nom et le
y dcrivent lalgorithme au cur du moteur logo dHadoop repris frntiquement par toute
la sphre Big Data, et en imaginant les DSI de
dindexation web de Google, savoir
la terre entire sucer leur pouce en faisant des
MapReduce.
rves chatoyants peupls de gentils lphants
jaunes. Les lecteurs chez qui Hadoop suscite des
cauchemars pourraient bien retrouver le sommeil
Nutch est toujours actif : http://nutch.apache.org/
la lecture de ce papier. Quant ceux qui voient
http://static.googleusercontent.com/media/research.google.com/fr//
archive/gfs-sosp2003.pdf (S.Ghemawat, H.Gobioff, S-T.Leung) des lphants roses, ils peuvent poser le livre et
http://static.googleusercontent.com/media/research.google.com/fr// le reprendre un peu plus tard.
archive/mapreduce-osdi04.pdf (J.Dean, S.Ghemawat)
OCTO > HADOOP - FEUILLE DE ROUTE

Hadoop : les grandes dates clefs

09

Gnalogie des versions dApache Hadoop


2011 2012 2013 2014 2015
OCTO > HADOOP - FEUILLE DE ROUTE

Hadoop et Big Data,


une question
dopportunits
Si son nom est celui dune peluche (voir les entreprises, portes par lexemple des
encadr prcdent), Hadoop est pourtant loin russites de compagnies comme Google et
dtre un jouet. Il motive une part significative Facebook, prennent conscience que savoir
des dveloppements open source. En effet, traiter et faire parler ses donnes est un
10 plus de 10% des projets mis en avant par la vritable avantage comptitif et ouvre la voie
fondation Apache (les top-level projects) font de nouveaux business models. Ce monde,
partie de la galaxie Hadoop. La galaxie est en rgi par lanalyse de dizaines de tra-octets,
continuelle volution, et nous sommes bien voire de pta-octets, est celui du Big Data.
placs pour le savoir car nous suivons lactualit
de prs! La R&D open source dHadoop est
porte par des socits comme Yahoo!,
Facebook, eBay, Criteo, et une myriade dditeurs.
Ils utilisent Hadoop au quotidien pour analyser Big data ?
toutes les empreintes de navigation que nous
Ce nest pas quune question de taille.
laissons sur leurs sites et ceux de leurs
Nanmoins, on considre que le seuil partir
partenaires, pour nous recommander des duquel on fait du Big Data est celui partir
produits, du contenu, pour prdire ce qui est le duquel les approches classiques ne sont plus
plus susceptible de nous plaire, en optimisant praticables cot raisonnable. En pratique,
des dizaines de milliers de paramtres. Parfois on juge qu partir de 10 To de donnes, on
pour nous espionner, aussi. Les plus gros clusters est dans le Big Data (ce nombre peut varier
selon les caractristiques des donnes
Hadoop dans le monde frlent aujourdhui les
traiter). Plus le volume stock augmente,
10000 nuds. En France, cest Criteo qui semble plus Hadoop devient conomiquement
mener la course avec plus de 1000 nuds. intressant face aux appliances MPP4
commerciales.
Web, mobile, rseaux sociaux, machine to
machine et bientt Internet des objets :
OCTO > HADOOP - FEUILLE DE ROUTE

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.

11 Qui dit nouvelles informations,


ou informations plus fines, Quelques objectifs dune dmarche
dit plus de calculs et une combinatoire plus Big Data et leurs grandes tapes
importante. Les ides nouvelles appellent
des besoins dinfrastructure plus importants, MI EU X CO N N A T RE S ES CL I EN T S
et en retour, linnovation technique suscite de
Rconciliation parcours digitaux / CRM
nouvelles ides par les possibilits accrues Segmentation comportementale
quelle offre. Une dynamique se met en place, Vision 360 du client
et il faut une plateforme qui sache grandir
petit petit, partir de besoins modestes.
Il nest plus question de dclencher une A N A LYS ER D ES S I G N A U X FA I BL ES
ET PRD I RE
dpense pharaonique dun coup sur un gros
Collecte de donnes exognes
investissement cens subvenir aux besoins Recherche de corrlations internes/externes
des 10 ans venir Il est irraliste de prvoir Modle prdictif
ces besoins aujourdhui, tant ces derniers sont
devenus volatiles!
FA I RE A U S S I BI EN ( V O I RE MI EU X )
AV EC MO I N S D E MO YEN S
Traditionnellement, dans les SI, de telles quan-
Mise en place darchitectures mixtes
tits de donnes sont conserves dans des ar- Augmentation de profondeur dhistorique
moires de stockage (des SAN), ou des ap- Data Lake
pliances de bases de donnes MPP4 comme

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

Les gnes dHadoop


Hadoop propose une nouvelle forme darchitecture capable de traiter
de gros volumes de donnes. En cela, il se distingue des bases de
donnes couramment utilises.

 utoriser des formats


A Avec Hadoop, le fonctionnement est diffrent.
de donnes flexibles Le parti pris est de stocker les fichiers sans
contraintes, pour en interprter la structure
Hadoop est principalement une technologie au moment de les lire. On parle de schema
12 oriente vers le traitement massif de fichiers, et on read. Ce principe, simple en apparence, est
en cela sapparente une plateforme de batch. une volution importante dans lapproche de la
Les usages typiques des bases de donnes donne. En effet, il offre plusieurs avantages:
(accs transactionnels) sy sont ajouts par la
suite. La donne reste dans son format natif, on
nest pas oblig de laisser de ct les fragments
Pour comprendre la nouveaut apporte par qui ne rentrent pas dans un schma fix a priori.
Hadoop, expliquons le fonctionnement des
bases de donnes. Une base de donnes Quand le schma doit voluer (parce que lon
relationnelle structure les donnes de plusieurs sait exploiter de nouveaux champs que lon avait
faons, qui constituent ce que lon appelle un ngligs, par exemple), il nest pas necessaire
schma: de reprendre le stock longuement accumul
avec de coteux traitements de migration.
elle contraint le format de la donne,
On peut conserver dans un mme espace de
elle associe les lments constitutifs de la stockage de la donne structure (bases de
donne sous forme de tables, donnes) et non structure (logs, texte, etc.)
qui peut le plus peut le moins!
elle lie les tables entre elles par le biais des
contraintes dintgrit. La contrepartie, bien sr, cest que le
programme de traitement devra faire face
la diversit de formats accumuls au gr des
sources, des poques de collecte.
OCTO > HADOOP - FEUILLE DE ROUTE

 imiter les dplacements


L Dautre part, Hadoop est conu pour limiter
de donnes au maximum le dplacement de donnes
travers le rseau : Hadoop fait transiter les
Larchitecture de la plateforme a t influence traitements plutt que les donnes. Cest ce
ds le dbut par un constat: le goulet dtran- que lon appelle la colocalisation traitements/
glement, dans le traitement de donnes, est au donnes, mise en uvre en particulier avec le
niveau de laccs ces donnes, et non pas, modle MapReduce (cf. chapitre 2).
comme on pourrait le penser navement, au
niveau de la puissance machine (CPU). En effet,
avec les progrs techniques, les dbits de
lecture et d'criture des disques augmentent bien
moins vite que la frquence des microprocesseurs.
Quelques observations
Hadoop a ainsi fait de ncessit vertu. Dune relatives la loi de
part, la distribution des donnes sur plusieurs Moore
serveurs, rendue ncessaire par le volume
13 manipuler, permet daugmenter le nombre de Entre 1990 et 2010 le cot du Go de RAM a
tuyaux par lesquels la donne est rcupre t divis par 100000, celui du Go de disque
dur par 1000. Le nombre de transistors sur
des disques.
un processeur Intel a t multipli par 10000.
Face ces progrs, les bandes passantes des
disques durs et des rseaux Ethernet, sur
cette mme priode, nont t multiplies
que par 100. Transfrer la donne devient
donc limitant. Cest ce quillustre le schma
ci-dessous, par ordre de grandeur :
OCTO > HADOOP - FEUILLE DE ROUTE

dire par ajout de serveurs. Cette stratgie a t


inscrite ds le dpart dans larchitecture mme
dHadoop.

Les serveurs que lon ajoute au fil du temps


nont pas besoin dtre haut de gamme:
Hadoop saccomode trs bien de serveurs
normaux, ce qui facilite les investissements.

Dans le cas simplifi o tous les serveurs sont


identiques (mme CPU, mme mmoire, mme
capacit de disque dur), la puissance de traitement
et de stockage crot linairement avec le nombre
de serveurs. Pour cette raison, on parle de
scalabilit linaire.

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

Pouvoir adapter la puissance normaux pouvant tre utiliss avec


Hadoop. Cela ne veut pas pour autant dire que
au besoin nimporte quel serveur dentre de gamme
fait laffaire: la RAM et les performances des
Contrairement aux appliances de bases de I/O (disques et rseaux) sont essentielles
donnes5, Hadoop na pas t pens comme pour obtenir des performances acceptables.
une plateforme monolithique sous strodes Ce sont typiquement les serveurs physiques
cense rpondre immdiatement tous les qui sont dj au catalogue de lentreprise.
besoins. En effet, un cluster Hadoop sagrandit
au fil du temps, par ajout incrmental de
ressources de stockage et de calcul, cest--

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

Garantir une fiabilit le facteur de rplication configur. On parle


de fonctionnement de design for failure6, cest--dire la capacit
de larchitecture fonctionner normalement
La fiabilit de fonctionnement est essentielle mme en prsence de pannes physiques.
ds que lon parle de traitements distribus.
En effet, la probabilit quune machine du
cluster subisse un incident un instant t crot Proposer une plateforme
avec la taille dudit cluster il faut vivre avec. ouverte
Hadoop est aujourdhui une vritable plateforme
ouverte. Dune part, il existe de nombreux
Pour illustrer ce point, considrons composants qui viennent se brancher au-dessus
des machines avec une disponibilit dHadoop pour lui offrir des interfaces de haut
de 99% chacune. Lorsque lon les niveau, dont nous parlerons en dtail dans le
regroupe dans un cluster de 100 chapitre 3.
machines, la probabilit qu un
instant t une machine au moins soit Dautre part, il est dsormais possible de
15 susbstituer HDFS et MapReduce des alternatives
tombe est de 63% (1 0,99100). On a
donc tout moment environ 2 chances spcifiques lorsque les besoins lexigent. Hadoop
sur 3 pour quune machine du cluster soccupe alors de fournir les API et la tuyauterie
soit dfaillante. permettant de lier le tout harmonieusement; on
entend parfois parler de systme dexploitation
Big Data. Et cest de plus en plus vrai.

Hadoop a pris le parti de garantir une fiabilit


quasi complte de son fonctionnement sans Open source
dpendre de la disponibilit totale du cluster.
Le mcanisme qui a t retenu consiste Hadoop est port par lApache Software
rpliquer N fois les donnes, N pouvant tre Foundation. Son code source est ouvert
configur au cas par cas. Par exemple, si on prend tous, de mme que la liste des amliorations
un nombre couramment utilis de 3 rpliques, et des bugs : libre chacun de participer.
cela signifie que lon peut perdre 2 nuds La communaut est solide; les principaux
du cluster stockant une donne, sans perdre contributeurs au code dHadoop proviennent
cette donne. Ds quHadoop constate la des diteurs (Hortonworks, Cloudera, Microsoft),
perte de ces serveurs, il recre les rpliques et des Gants du Web (Yahoo!, Facebook,
manquantes sur dautres serveurs, rtablissant LinkedIn, Twitter).

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

nouveaux goulets dtranglement dans le enregistrements unitaires. Cela est possible


traitement, il est important que les donnes par lintermdiaire de combiners, une facilit
intermdiaires ne soient pas trop volumineuses offerte par le framework de dveloppement.
(lorsque cest possible). Typiquement, dans Un combiner est une sorte de mini-reducer qui
un traitement comportant une agrgation, il sexcute au sein dun mapper.
peut tre utile de faire des pr-agrgations
par lots ds ltape de Map, afin de faire
transiter des agrgats plutt que de multiples

Principe de lalgorithme MapReduce

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 /commande.php Dclenchement de la commande.

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.

Nous pouvons rsumer ce cadre en 3 points :

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

Premier tage : Map


Chaque tche de Map reoit une portion de fichier log analyser, sous forme de paires (clef,
valeur). La constitution des clefs et des valeurs est du ressort dune spcification de format (un
input format), quil faut prciser en paramtre au lancement du traitement. Hadoop vient avec des
input formats courants, mais dans notre cas nous en crons un adapt ce que nous voulons faire.
En particulier, il dcoupe chaque ligne ainsi:

81.129.34.188 1a89b 99183 2013-10-03 09:00:41 GET /accueil.php

Clef denregistrement Valeur Valeur


OCTO > HADOOP - FEUILLE DE ROUTE

EXEMPLE > Un traitement MapReduce

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

81.129.34.188 1a89b NULL /accueil.php


81.129.34.188 1a89b NULL /catalogue.php Split 1 (trait par Map 1)
81.129.34.188 1a89b NULL /catalogue.php?categorie=57
81.129.34.188 1a89b NULL /catalogue.php?categorie=176
24
81.129.34.188 1a89b NULL /produit.php?produit=7364 Split 2 (trait par Map 2)
81.129.34.188 1a89b NULL /ajout_panier.php?produit=7364
81.129.34.188 1a89b NULL /commande.php
81.129.34.188 1a89b NULL /login.php?origine=commande
81.129.34.188 1a89b NULL /login.php?origine=commande
Split 3 (trait par Map 3)
81.129.34.188 1a89b 99183 /commande.php
81.129.34.188 1a89b 99183 /accueil.php
81.129.34.188 1a89b 99183 /ajout_panier.php?produit=699

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:

81.129.34.188 1a89b NULL AjoutPanier(produit=7364) Issu de Map 2


81.129.34.188 1a89b NULL Commande
81.129.34.188 1a89b 99183 Commande Issu de Map 3
81.129.34.188 1a89b 99183 AjoutPanier(produit=699)

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.

Etage cach : le shuffle & sort


25
Tous les couples (clef, valeur) mis par les Maps sont redistribus par Hadoop vers les Reduces do
le terme shuffle. Cette collaboration entre tches de Map et de Reduce se fait automatiquement,
sans que nous ayons la programmer.

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.

Dernier tage : Reduce


Le reducer prend les paires du shuffle & sort en entre, sous la forme suivante: - clef mise par un
mapper, liste de valeurs, la liste en deuxime position tant constitue automatiquement par Hadoop
OCTO > HADOOP - FEUILLE DE ROUTE

EXEMPLE > Un traitement MapReduce

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:

Comme annonc, chaque parcours reconstitu


131.91.239.12 6d193 sera trait en une fois par une unique tche de
12440 AjoutPanier(produit=133) Reduce. Bien sr, une tche de Reduce peut
12440 AjoutPanier(produit=78) traiter plusieurs parcours: tous ceux qui lui ont t
81.129.34.188 1a89b attribus par le shuffle & sort.
NULL AjoutPanier(produit=7364)
NULL Commande Comme nous souhaitons connatre les clients qui
99183 Commande abandonnent des commandes, nous appliquons
99183 AjoutPanier(produit=699) la rgle suivante: SI la liste dvnements contient
88.166.61.40 f8ce9 au moins un AjoutPanier MAIS aucune Commande
NULL AjoutPanier(produit=817) avec un ID client non nul, ALORS mettre en sortie
NULL Commande lID client et la liste des produits perdus pour la
201.12.78.160 189a3 commande, sous forme de couples (clef, valeur).
NULL AjoutPanier(produit=51)
26
NULL Commande

Ici, nous dcidons dajouter en plus le prix total de la commande perdue, en faisant appel un
rfrentiel produit:

12440 133,78 458,00


99183 699 329,00
NULL 817 54,90
NULL 51 1270,00

Nous devons spcifier un format de sortie (output format). Ici, nous choisissons de produire du
CSV (Comma-Separated Value), exploitable par Excel ou R:

ID client ; produits ; manque gagner


12440 ; 133-78 ; 458,00
99183 ; 699 ; 329,00
NULL ; 817 ; 54,90
NULL ; 51 ; 1270,00
OCTO > HADOOP - FEUILLE DE ROUTE

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

La fonction dordonnancement est prise en Pilote Lance et pilote


charge par un service dHadoop propre
MapReduce: le job tracker. Cest lui qui reoit
28 tous les jobs, cest--dire le code binaire des
traitements et leurs paramtres dexcution.

Pour connatre lemplacement des fichiers


sur le cluster, le job tracker fait appel aux
services du name node dHDFS, qui lui fournit
les emplacements des blocs composant les
fichiers dentre.

Enfin, pour distribuer les calculs, le job tracker Et la fiabilit ?


interroge un autre processus qui sexcute sur
Il existe des mcanismes de surveillance
chacun des nuds : le task tracker. Cest lui
(heartbeat) servant relancer les portions
qui assure le lancement et le suivi des tches de traitement en chec, voire les rediriger
de Map ou de Reduce sexcutant sur son vers un nouveau nud si lun dentre
nud. Concrtement, chaque task tracker eux venait disparatre compltement
reoit du job tracker le code de traitement et du cluster. Ces oprations sont faites de
manire transparente par la plateforme ; le
lance une JVM laquelle il dlgue lexcution
dveloppeur na pas sen proccuper.
de la tche Map ou Reduce.

Sur chaque nud, le task tracker dispose


dun nombre limit de slots, qui dterminent
combien de tches de Map et de Reduce peuvent
sexcuter en mme temps sur ce nud.
OCTO > HADOOP - FEUILLE DE ROUTE

La programmation des jobs


MapReduce
Larchitecture combine LAPI native de MapReduce est crite en Java.
dHDFS et de MapReduce Ainsi, la premire manire dcrire un programme
MapReduce est dimplmenter 3 classes du
framework. Ces classes dfinissent 3 fonctions:
NAME NODE JOB TRACKER
une fonction map(), une fonction reduce(),
et une fonction dinitialisation run() qui va se
Rpartition des Jobs charger de la configuration technique. Il y a
fichiers en blocs MapReduce
donc peu de code crire. Cela ncessite
cependant dinstaller un environnement Java
complet: IDE, dpendances Maven, compilation,
Data Data dploiement. On rserve donc cette approche
node node
... des phases dindustrialisation.
Slots Task Slots Task
MR tracker MR tracker
29 En phase dexprimentation, il est plus simple
dcrire les mappers et reducers en langages
de script (Python, Ruby, Shell). Ceci est
possible grce un mcanisme appel Hadoop
Streaming. Cependant, certaines fonctions
avances (combiners, formats dentre/sortie
non standard) ne sont pas disponibles dans ce
mode, si besoin il faut alors revenir lAPI Java.
Rappelons quil sagit dune vue logique des
services prsents sur le cluster. Le name node
et le job tracker peuvent sexcuter en thorie
sur nimporte quel nud. Il nest toutefois
pas recommand de les faire cohabiter avec
dautres services pour deux raisons:
ils sont fortement sollicits et ils ont des
exigences de mmoire qui risquent de
pnaliser les services concurrents,
ils ne sont pas soumis aux mmes contraintes
de disponibilit que les autres services, ce
qui motive les hberger sur des serveurs
diffrents, avec des SLA distincts.
OCTO > HADOOP - FEUILLE DE ROUTE

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.

31 MapReduce avant et aprs YARN

AVANT AUJOURDHUI
HADOOP 1 YARN & HADOOP 2

RESOURCE APPLICATION
JOB TRACKER MASTER
MANAGER

MAP OR REDUCE
TASK TRACKERS TASK NODE MANAGER CONTAINER

Pilote Lance et pilote


OCTO > HADOOP - FEUILLE DE ROUTE

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.

Tez, quant lui, est une volution de


Larchitecture combine MapReduce visant donner plus de flexibilit
dHDFS et de YARN. au programmeur dans la dfinition des
traitements. Tez propose un cadre pour crire
Cela ne vous rappelle rien ?
des traitements plus labors sous forme de
DAG, cest--dire de graphes acycliques
32
RESOURCE orients . Concrtement, cela signifie des
NAME NODE
MANAGER
enchanements dtapes arbitraires qui se
passent des donnes de lune lautre, sans
Rpartition des Jobs
fichiers en blocs YARN boucle.

Pour les applications qui en tirent parti, Tez


Data Data apporte une amlioration de performance
node node

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

Lapport du modle DAG

33

Exemple de traitement compos souffrant de la rigidit de MapReduce.


Les jobs (A1) et (A2) prparent 2 sous-ensembles de donnes, qui sont ensuite joints par le job (B).
Le job (C) fait une simple agrgation finale, avec un mapper inutile (en pointills) vers le reducer.

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

Open source, diteurs


et gouvernance
Aujourdhui, Hadoop est un des projets phares dautres distributions cest le cas dOracle qui
ports par la fondation Apache. Il faut voir embarque Cloudera dans son appliance Big
Hadoop comme une plateforme flexible, et par Data. Mme si elles sont moins visibles sur le
l mme capable de mettre en uvre la plupart march, elles permettent ces acteurs doffrir
des ides qui gravitent autour du Big Data. des stacks compltes leurs clients, intgrant
des architectures Big Data.
Son universalit attire de
nombreux acteurs qui Hadoop est peru comme Cette multiplicit ne faci-
36
contribuent activement le systme dexploitation lite pas le choix dune dis-
lvolution et lamlioration tribution pour dmarrer un
dHadoop, et parmi eux
Big Data open source de cluster; nous reviendrons sur
les Gants du Web: ils ont rfrence. cet enjeu dans le chapitre
besoin dHadoop pour leur suivant.
cur de mtier, et les contributions en retour
la communaut font partie de leur culture.

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

Hadoop dans les nuages:


les acteurs du cloud
Excuter un traitement Hadoop sur le cloud Que des grands dOutre-Atlantique? Eh bien
peut tre une option pertinente pour des raisons non, nous avons aussi nos acteurs du cloud.
conomiques. Lorsque lon a besoin ponctuellement notre connaissance, cette date seuls OVH
de beaucoup de puissance, il est plus et Orange Business Services sont positionns
intressant dutiliser des ressources de calcul sur le crneau en France.
la demande, plutt que dinvestir dans un cluster
complet. Techniquement, larchitecture dHadoop Outre ces acteurs, qui proposent Hadoop
lui permet de fonctionner parfaitement sur des comme un service part entire, il est bien sr
37 possible dutiliser des services Infrastructure
clusters de machines htrognes. Or sur le
cloud, on ne sait jamais vraiment ce quon as a Service (IaaS) sur cloud priv ou public. Le
rcupre un instant t. Cest sans doute pourquoi dploiement, la gestion et le paramtrage des
un certain nombre dacteurs se sont positionns clusters sont alors la charge de lutilisateur;
comme fournisseurs de services Hadoop sur le ce ne sont pas des tches triviales!
cloud, donc en Platform as a Service (PaaS).
Dans certaines offres Hadoop en PaaS (notamment
Ainsi, Amazon Web Services, le cloud dAmazon, Amazon et Google), les donnes traiter
met disposition un service Elastic Map Reduce sont hberges sur un service de stockage
(EMR) entirement bas sur Hadoop, offrant le permanent, alors que les clusters de calcul
choix entre les distributions Apache et MapR. sont phmres. Cela compromet le principe
de colocalisation des traitements et des
Mme stratgie chez Google, qui offre aussi,
donnes: avec ces offres, attention donc la
avec Google Compute des clusters Hadoop
performance du rseau qui relie le stockage
bass sur les distributions Apache et MapR.
aux machines de calcul. Le rseau ne doit pas
Microsoft sest galement positionn sur le tre un goulet.
crneau, avec loffre HDInsight de sa plateforme
Pour une discussion plus technique sur les
Azure, monte en partenariat avec Hortonworks.
Le petit plus de cette offre est la fourniture enjeux dHadoop sur le cloud, nous vous
de connecteurs ODBC et Excel, qui permettent renvoyons notre article de blog: http://blog.
dinterfacer le cluster avec des applications du octo.com/hadoop-in-da-cloud/.
SI ou utilisant SQL Server for Azure dans le cloud.
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

Quelques outils de lcosystme Hadoop

39

un systme de fichiers distribus servant de objet de base. Cette stratgie permet


support au matriel de stockage NAS Isilon. Bien lditeur DataStax dintgrer la suite logicielle
quil ny ait plus de colocalisation donnes/ dHadoop dans son propre cosystme, par
traitements, EMC annonce des performances le biais de MapReduce. Il faut le voir comme
suprieures8, mais il est difficile daffirmer que une opportunit dajouter des capacits
cela est vrai pour tout type de traitement analytiques au-dessus dune application
dveloppe avec Cassandra transactionnelle
Plus surprenant, la base NoSQL Cassandra (un site web par exemple, ou un agrgateur de
(dans son dition DataStax Enterprise) implmente logs/capteurs).
lAPI dHDFS au-dessus de son stockage

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.

Le modle column family

TABLE SERIES FAMILLE DE


Id Caracteristiques Valeurs COLONNES
type= freq= 10:52= 10:53= 10:54=
123456 temperature minute 23.0 22.0 21.0
type= param= 08:40= 09:57= 10:54=
CLEFS 123457 evenement acces intrusion login 21.0 CELLULE :
colonne = valeur
type= serveur= 08:40= 09:57= 10:12=
123458 log ps_web_03 intrusion POST /login GET /faq

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

42 La plateforme Hadoop prsente un vaste choix


doutils qui rpliquent les patterns daccs
habituels des bases de donnes. Spark, ou la pice
Un premier besoin est la transformation
rapporte dHadoop
de la donne en mode batch. On est dans Spark nest pas quun langage de transformation
une approche de type ELT, dans laquelle les de donnes. Cest au dpart une plateforme
transformations sexcutent sur Hadoop, dexcution distribue, un peu comme Hadoop, et
pour profiter de sa scalabilit. Concrtement, cre indpendamment de ce dernier. Depuis peu
dans le giron dApache, il est en train de fusionner
de telles transformations font appel
avec Hadoop pour devenir un moteur dexcution
toute la panoplie de lalgbre relationnelle alternatif MapReduce, et son cosystme suit le
ensembliste : slection, filtrage, jointure, mme chemin. Son API crite en Scala tire parti
regroupement, etc. Par rapport au monde des techniques de programmation fonctionnelle,
des bases de donnes relationnelles, deux concises et particulirement adaptes au calcul
distribu11. Cela explique lintrt considrable
diffrences sont noter. Dune part, le langage
que la communaut Big Data et les diteurs Hadoop
dcriture de ces transformations nest pas portent Spark. Sans aucun doute, une partie du
limit SQL. Dautre part, la plupart des futur dHadoop se tient l. Leur descendance sera
outils proposs interprtent la structure des nombreuse et conquerra le monde !
donnes la vole, ce qui ouvre la possibilit

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.

Pig, Cascading (ou sa variante Scalding pour


Scala), et plus rcemment Spark, Crunch ou Les chelles de temps
Flink, proposent des API spcifiques centres
43
autour de la notion de dataset (jeu de donnes):
sur Hadoop,
les instructions consomment et produisent des
pour fixer les ides
datasets, dans un enchanement doprations. 1h

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

Calcul scientifique, data science


et machine learning

On ne peut pas parler de Big Data sans parler Data science


de data science et de machine learning. Une et machine learning
plateforme Big Data se doit donc de supporter
des calculs statistiques massifs. Cest le cas
Pour certains, data science et machine
dHadoop, o cette fonction est assure par
learning sont des synonymes, pour
plusieurs outils provenant de son cosystme.
dautres des marqueurs sociaux comme
En ce moment, ces outils tournent beaucoup le bonnet du hipster et le chapeau de
autour de Spark. lacadmicien. Quant nous, nous
pensons que ce sont des activits
Nous lavons dj dit, Hadoop est bon complmentaires.
comme ETL et pour faire tourner certains
types dalgorithmes sur de gros volumes. En Le data scientist est lexpert technique
44 revanche, il nest pas (encore) adapt au travail et mtier de la donne. Il travaille avec
dun data scientist qui, en phase dexploration, des outils dexploration, de data mining,
de prototypage. Il cherche dcouvrir,
a besoin de tester rapidement et de faon
visualiser, expliquer et modliser les
interactive des hypothses varies. Dans ce
corrlations entre les donnes.
type dactivit, des outils comme R ou Python
sont beaucoup plus souples. Tout dabord Lexpert en machine learning cherche
parce quils travaillent en mmoire et sont construire des systmes pouvant
donc rapides, ensuite parce quils bnficient apprendre partir des donnes qui leur
de nombreuses librairies de machine learning sont prsentes, plutt que reposant sur
aptes construire des modles prototypes. des rgles pr-tablies par un humain. Il
Travaillant en mmoire, ils ne savent manipuler
utilise pour cela des algorithmes
capables de construire des modles
quune taille limite de donnes. On peut
statistiques.
donc tre amen extraire des chantillons
pour mettre au point un modle. Ces personnes sont amenes collaborer
pour rpondre aux problmes business
Lorsque lon a dfini un modle pertinent, qui leur sont prsents. Pour les deux
Hadoop revient dans la boucle, pour appliquer profils, Big Data apporte son lot de
le modle sur lensemble des donnes. On dfis : le volume des donnes et leur
distingue donc bien la construction du modle htrognit (format, qualit).
de son application en taille relle. Cependant,
si vous pouvez vous offrir un gros serveur pour
tout calculer en mmoire, ne vous privez pas!
OCTO > HADOOP - FEUILLE DE ROUTE

Hadoop, un outil au service du data scientist

45

La transposition dun modle vers Hadoop les distributions et propose un catalogue


nest pas une tche simple. On ne peut pas dalgorithmes sous forme de framework
prendre un programme R ou Python et le Java. Java nest pourtant pas un langage
dposer dans Hadoop en esprant quil se particulirement adapt au machine learning: il
distribue tout seul. Il va falloir ladapter voire noffre pas le niveau dabstraction qui convient
changer lalgorithme12. Dans beaucoup de lcriture simple de formules mathmatiques.
cas, heureusement, lcosystme arrive la La prise en main de Mahout nest donc pas
rescousse. En voici les principaux membres. aise.

Mahout est loutil de machine learning De fait, la lourdeur de Mahout a toujours t


historique dHadoop. Il est inclus dans toutes un frein son adoption, laissant aujourdhui

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:

RHive, qui permet de manipuler de la


donne charger des tables Hive en mmoire,
lancer des requtes SQL ou effectuer depuis
R quelques oprations simples comme des
agrgations.
46
RHadoop, qui donne accs aux stockages
HDFS et HBase depuis R, et permet de
dvelopper des fonctions map() et reduce()
Lavenir de Mahout
composant un traitement MapReduce.

Une dition commerciale et Hadoop-


Nous craignons que Mahout ne soit en
route vers le cimetire des lphants.
aware de R est aussi propose par la
Les contributeurs de ce projet ont dcid
socit Revolution Analytics, avec quelques
que les nouveaux algorithmes du
algorithmes de machine learning la clef. Nous catalogue Mahout seraient dvelopps
navons malheureusement pas eu loccasion avec Spark au lieu de MapReduce.
de la voir luvre.
Dun point vue technique cest une
Python offre aux programmeurs un large bonne ide, mais ds lors que SparkML
choix, quil sagisse daccder un cluster arrive en fanfare, avec lappui de la
Hadoop, dcrire du MapReduce ou de piloter communaut, que faire dun outil de
des clusters sur des fournisseurs de cloud. plus, qui ne survira peut-tre mme pas
Ce langage est dailleurs nativement prsent un chantier de refonte ?
sur la plupart des serveurs, ce qui en facilite
lutilisation. Il se distingue par la qualit de ses Aujourdhui, nous prconisons sans
librairies scientifiques, dont les plus connues hsiter SparkML plutt que Mahout.
sont Scikit-learn (machine learning, lead par
lINRIA), Pandas et SciPy (calcul matriciel), ou
OCTO > HADOOP - FEUILLE DE ROUTE

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

Lexploitation Deux stratgies dautomatisation sont possibles:

Par les API dadministration Hadoop: outre


> Ladministration
une interface graphique, les outils dadministration
Ladministration recouvre un large panel de ont le bon got dexposer des API qui peuvent
tches : installation des binaires, entretien tre pilotes par script.
de la topologie du cluster (via des nuds et
Par le systme : les logiciels Hadoop sont
configuration des points dentre aux services
galement disponibles sous forme de paquets
et aux donnes), allocation des ressources
RPM pouvant tre installs avec des commandes
de calcul ou de stockage, tuning fin des
systme. Cela se fait au prix dun plus gros
applications, mises jour de versions, etc.
effort fournir pour construire soi-mme la
Les diteurs Hadoop fournissent de tels outils configuration partir de zro. Certaines
dadministration, qui sont au cur de la organisations prennent cette voie pour rester
partie payante de certaines distributions (ex. indpendantes des outils dadministration,
Cloudera Manager), ou disponibles en open leur got trop fortement lis aux diteurs de
source (tel Ambari, intgr linitiative Open distribution. Ces organisations matrisent dj
48 Data Platform). Mais ces outils ne suivent pas en les outils de dploiement du march, comme
temps rel les dernires volutions dHadoop Chef, Puppet ou Ansible, et sorientent
et la plthore doptions avances qui en naturellement vers ceux-ci.
rsulte: il faut quand mme connatre le dtail
des fichiers de configuration. Pour des clusters
isols, non critiques et pas trop gros (<10
nuds), pas de problme, les outils font le gros DevOps ?
du travail et les oprations supplmentaires ne
psent pas lourd. partir dun certain nombre DevOps est un mouvement qui promeut
de nuds, ou lorsquil faut rpliquer une lapplication des mthodes agiles au monde
de la production. Entre autres, il prne
configuration sur plusieurs environnements
un enrichissement mutuel des pratiques
synchroniss, cela devient ingrable. de dveloppement et de production.
Lexposition dAPI dadministration, le
Dans ces cas-l, point de salut sans automatisation scripting de dploiements avec Puppet,
des dploiements et des reconfigurations ! sont des moyens dautomatiser des tches
Lenjeu est important car les fichiers de de production, de la mme manire quun
configuration sont rpartis sur tout le cluster. dveloppeur automatise la construction des
Il faut veiller leur cohrence globale, pouvoir logiciels avec des outils de build.

documenter les changements et savoir revenir


Vous trouverez de nombreux articles traitant
en arrire en cas derreur de manipulation. On du sujet sur notre blog:
rentre alors dans une logique DevOps. http://blog.octo.com/tag/devops.
OCTO > HADOOP - FEUILLE DE ROUTE

> La supervision par exemple), elles couvrent plutt lintgration


doutils de supervision classiques avec
La supervision sur Hadoop est un sujet Hadoop. On est encore loin de la fourniture de
complexe. Il faut surveiller les processus tableaux de bord spcialiss destination des
serveur, sassurer que les nuds sont en bonne exploitants experts dHadoop. La tendance
sant et pas trop saturs, suivre lexcution est plutt de se servir du cluster Hadoop, en
des traitements, diagnostiquer les erreurs en particulier de HBase, comme base de donnes
consultant les logs pars sur le cluster, etc. de mtriques de supervision llphant se
mord la queue!
cet gard les distributions dHadoop ne sont
pas gales. Certaines proposent des interfaces
unifies o donnes, traitements, logs et > La scurit
mtriques sont rassembls dans un moteur
de recherche, dautres quelques tableaux La scurit est un vaste sujet Dans nos
de bord de sant du cluster et des pointeurs missions Big Data, o nous avons loutrecuidance
vers les IHM de bas niveau dHadoop. Que de recommander une ouverture des donnes
ces interfaces soient unifies ou non, les de lentreprise tous ses acteurs (voire
49 dveloppeurs en auront besoin pour la mise lextrieur), la scurit tient une place importante
au point de leurs traitements. en gnral, pas celle du mort. Il ne faut pas se
voiler la face, cest un sujet de proccupation
Les exploitants seront plutt intresss par majeure des organisations qui entament une
des API connecter aux outils de supervision transformation digitale.
de la DSI. L encore, mme si certaines
distributions proposent des API unifies de Hadoop na commenc sy intresser que
faade, leur manque dexhaustivit oblige tardivement, vers 2012 comme nous lavons
complter par des appels directs aux API vu dans lintroduction. Cest lpoque des
de bas niveau dHadoop : il faut faire son premiers data lakes. Autant le dire tout de
march dans les API, et la popote derrire. suite donc, le sujet de la scurit na pas encore
Au niveau le plus bas, on trouve des outils de atteint sa pleine maturit. La scurisation
supervision dinfrastructure connus par ailleurs globale dun cluster demande un effort de
dans le monde de la supervision (Ganglia), configuration important. Quant loutillage,
ou dvelopps expressment pour Hadoop il commence seulement arriver. Voyons cela.
(Ambari Metrics).
Lauthentification (tes qui toi?) est trs bien
On pourrait croire qu ct de ces initiatives couverte, Hadoop dlguant cette tche un
les gros diteurs de supervision se seraient annuaire respectant le protocole Kerberos13.
lancs sur le crneau. En fait, si quelques Un exemple bien connu de tel annuaire est
tentatives existent (de la part dHP ou de BMC Active Directory, de Microsoft.

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

Lhabilitation (quest-ce que tu fais l ?)


base de groupes dutilisateurs est bien
couverte aussi, mme sil ny a pas encore de
mcanisme universel pour les fichiers, bases
O placer les comptes et les
de donnes, services, etc. Des diteurs sont en groupes de scurit Hadoop?
concurrence pour imposer leur framework
de scurit; pour linstant, match nul14.
Dans un annuaire bien sr ! Mais
lequel ? Votre entreprise dispose
La traabilit et laudit (qui a fait a? Y a-t-il probablement dun annuaire o se
des trous dans la raquette?) sont maintenant trouve le compte qui vous sert ouvrir
votre session Windows le matin. Active
bien tablis. La stratgie retenue chaque
Directory, lannuaire de Windows,
fois est dintercepter les accs aux services
respectant le protocole Kerberos, Hadoop
et aux donnes, pour produire des logs de saurait lui dlguer lauthentification de
scurit centraliss. Cette capacit technique ses utilisateurs.
ne doit pas masquer le gros enjeu, encore
naissant au moment de la rdaction de cet Pour autant, il ne faut pas polluer
50 ouvrage, celui de la gouvernance des accs, lannuaire dentreprise avec des comptes
avec ladministration de politiques de scurit techniques ou des groupes de rles
complexes. Techniquement, linterception Hadoop qui ne relvent pas de la gestion
est assure par les frameworks dhabilitation du personnel. Comment faire?
voqus ci-dessus, ou bien par des services
La meilleure pratique, dans ces conditions,
assurant le rle de guichets dentre par
est dadjoindre au cluster Hadoop un
lesquels passent tous les accs (cest le cas de
petit annuaire dappoint. Il contiendra
la gateway Knox dHortonworks). les comptes techniques, les groupes de
scurit et plus gnralement tout ce qui
Le chiffrement ( quest-ce que tu dis ? )
est ncessaire au fonctionnement propre
est maintenant possible sur les flux rseaux de la plateforme.
internes et aux frontires du cluster, et sur
disque (chaque utilisateur ou entit chiffre ses Les groupes de scurit, dans lannuaire
fichiers HDFS avec ses propres clefs; on parle dappoint, pourront mlanger des comptes
de security at rest). Les diteurs ont procd et des sous-groupes des deux annuaires:
des rachats stratgiques dans le domaine, pour comptes techniques et humains, groupes
se positionner sur un crneau o lintgration de rles et groupes dorganisation.
dHadoop dans linfrastructure de scurit du
SI est un sujet complexe.

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

> Survivre un dsastre autre catgorie pour laquelle il faut se poser la


question. Bref, il faut le prendre avec bon sens
Les Plans de Reprise et de Continuit et estimer les cots pour faire les bons
dActivit (PRA et PCA) classiques prvoient compromis.
de sauvegarder et de rpliquer des donnes
sensibles. Avec un cluster de plusieurs Idalement, il faudrait mesurer lusage rel
pta-octets, ce nest pas instantan (ni trs des donnes pour choisir les plus pertinentes ;
conomique). Les bandes magntiques, ou cest une utilisation possible des outils daudit
les rplications inter-sites, sont tout de suite vus plus haut. Enfin un dbouch utile de
compliques. Il faut donc faire des choix! lobsession pour la scurit: offrir une qualit
de service au plus juste, et viter que le cluster
Pour les mtadonnes, les recommandations ne devienne un immense dpotoir de donnes
sont simples : les configurations du cluster htroclites.
et des outils, les schmas dinterprtation
des donnes, les catalogues, doivent tre Certaines organisations font le choix de
sauvegards et, si ncessaire, rpliqus sur un mettre un petit cluster de secours sur le cloud,
cluster de secours. Ce sont des mtadonnes auprs dun fournisseur dinfrastructure la
51
de faible volume et qui changent assez demande. Par exemple, les donnes peuvent
rarement pour que les techniques habituelles tre rpliques telles quelles sur Amazon S3 au
de sauvegarde soient appliques. Il en va fil de leau, et un cluster Elastic Map Reduce
de mme pour les utilisateurs et groupes de dmarr uniquement lorsque ncessaire. Les
scurit. indisponibilits tant rares, cela peut savrer
plus conomique que le maintien dun cluster
Pour les donnes elles-mmes, il faut dfinir de secours. Mais il faut que les applications et
des stratgies. Peut-tre les donnes brutes, traitements ne soient pas trop dpendants de
volumineuses, sont-elles dj conserves par la version dHadoop sur laquelle ils sexcutent
les producteurs de donnes, et peut-tre est-il car on ne matrise pas ce paramtre chez le
acceptable de perdre quelques jours de fournisseur de cloud.
production le temps de les rcuprer? Peut-tre
les rsultats de calcul intermdiaires sont-ils
inutiles la production et donc, peuvent tre
sacrifis ou peut-tre veut-on en conserver
certains pour ne pas avoir relancer des calculs
trop longs ? Quant aux rsultats finaux des
traitements, sils sont fortement agrgs on
pourra facilement les sauvegarder ou les
dupliquer. Les donnes propres aux utilisateurs
et stockes dans leurs bacs sable sont une
Had p
dans le SI
Si vous tes convaincu de lintrt
dHadoop dans votre organisation,
il ny a qu se lancer! Mais comment,
et par quoi commencer?
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

Allons plus loin encore: un cluster Hadoop est


un service de traitement de donnes partag
entre plusieurs utilisateurs, ce que lon appelle Hadoop et lagilit lchelle
multi-tenant. Vous allez vite vous rendre
de lentreprise
compte quil est un composant critique de vos
processus mtier. Or cest une plateforme en
Lagilit grande chelle cherche adapter
volution, que vous tes en train dapprivoiser.
lorganisation pour faciliter lemploi de
Comment rsoudre cette quation? Srement mthodes agiles. Cest une pratique rcente
pas avec une organisation classique silote mais qui a dj quelques incarnations, par
en services. L encore, ce sont les modles exemple dans le framework SAFe (Scaled
dorganisation agiles qui donneront la direction. Agile Framework (sic)).

Une feature team est une quipe


Par exemple, un embryon dquipe transverse
pluridisciplinaire (mtier, dveloppeurs,
pourra tre constitue dun architecte, dun production, architectes, etc.) travaillant sur
dveloppeur expert Hadoop, dun data scientist un mme produit final application ou
et dun exploitant. Ils collaboreront pour service.
55 maintenir un cluster et aider les premiers
Une component team maintient un composant
projets dsireux de goter aux charmes de Big utilis par plusieurs feature teams par
Data. exemple (au hasard) un cluster Hadoop
multi-tenant.
Hadoop va vite se trouver sous les feux des
projecteurs de lentreprise. Quoi de plus Lintrt des organisations agiles, cest que
tout ce petit monde partage de la
normal ! Des usages innovants la pelle, des
connaissance par le biais de communauts
promesses dconomies fabuleuses, et surtout de pratiques (par exemple, la communaut
un bon gros effet de mode les projets vont des utilisateurs de Hive, ou celle des experts
se bousculer au portillon. vitez le pige de des donnes RH), bien places pour faire
louverture dun cluster universel tous les avancer leurs sujets de prdilection. Tout
linverse dune cellule darchitecture perche
vents: il est impossible de trouver du premier dans sa tour divoire, en somme.
coup lorganisation parfaite qui soit capable
dabsorber autant de projets et la charge Avec Hadoop, les obstacles sont petits mais
dexploitation qui va avec. Il vaut mieux y aller quotidiens, il faut une grande autonomie
pour les surmonter et avancer rapidement.
doucement en choisissant bien ses premiers Une organisation agile permet cela, en
combats, puis apprendre au fur et mesure. favorisant lchange et la discussion. Ce
sont des ides conceptuellement simples
mais difficiles mettre en marche quand la
culture dentreprise rsiste!
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

Ladoption dHadoop, un chemin jalonn dembches


mais aussi de succs !
OCTO > HADOOP - FEUILLE DE ROUTE

Le data lake, mlang, cest noy dans la masse. Mais ce


ou lart de la mtaphore nest pas trs grave, car leau na dintrt que
comme contribution au volume global, quon
Dans un entrept terrestre, un warehouse peut toujours pomper au besoin. Dans cette
donc, cest bien rang. Les botes sont analogie approximative, leau cest la donne
organises en rayons, et la plupart du temps Big data, structure ou non. Quelle que soit
faciles empiler. videmment, tout ne rentre lapproche adopte, technique ou mtier, les
pas forcment dans un paralllpipde, on projets construits sur le cluster Hadoop seront
perd parfois de lespace ou on doit rpartir les autant de ruisseaux contributeurs au volume
pices dtaches dans des botes spares. du grand lac.
Mais cest simple, bien tiquet, et tout a t
bien planifi. Le contenu des botes, ici, cest la
donne structure du datawarehouse.

Dans un lac, en revanche, le liquide dvers


occupe tout le volume, sans en gaspiller : on
58 peut en mettre plus. On peut y verser des Les chelles
seaux deau, ou des glaons bien cubiques hydrographiques
qui finiront par fondre. Cest sr, une fois
Lanalogie venait au dpart du marketing Big
Data, puis elle est reste. Les sceptiques ironisent
en parlant de data pond (mare de donnes), les
mgalos semportent avec des images de data
ocean, les pessimistes parlent de data swamp
(marcage) pour souligner lenlisement de lutilisateur
dans une masse de donnes dverses sans
ordre. Finalement, le lac est un juste milieu ! Du
reste, on peut compartimenter un lac pour grer
un minimum la circulation des eaux.
Bizarrement, rien na t propos comme analogues
des bestioles plus ou moins sympathiques qui
grouillent au fond des lacs
OCTO > HADOOP - FEUILLE DE ROUTE

Larchitecture dun data lake


Les donnes verses ne sont pas destines croupir dans le lac:
transformes ou non, elles ont ensuite vocation tre utilises.

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.

Il est illusoire dnumrer Par consquent, si vous


et danalyser toutes les Choisir une distribution ntes pas encore affili
distributions du march,
60 Hadoop, cest comme choisir une chapelle, nous vous
elles sont trop nombreuses. recommandons de dter-
Cependant, aprs quelques une distribution Linux: miner la solution qui vous
annes de maturation le critre principal est rarement convient le mieux grce
dHadoop, des diteurs et technique. un POC.
distributions incontour-
nables se dtachent, sou- notre connaissance,
vent gnralistes. Nous en citons par ailleurs aujourdhui seul Hortonworks propose un
dautres qui, par leurs particularits, se destinent support en franais, soit directement soit par
des usages spcifiques. lintermdiaire de ses partenaires (OCTO tant
lun deux).
Pour dpartager les gnralistes, nous voyons
trois critres ce jour: Le paysage aura srement volu dici un an
ou deux, loccasion des partenariats voire
La culture plus ou moins open source de de rachats possibles des gnralistes. Des
chaque diteur. rumeurs circulent rgulirement, pour linstant
elles ne se sont pas vrifies
Les partenariats technologiques ou dint-
grateurs de chacun, qui faciliteront laccueil
de sa solution dans votre SI.

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

DISTRIBUTION POUR QUELS USAGES ? REMARQUES

GNRALISTES

Choix fin des versions de chaque outil mais risques


dinstabilits et de rgressions lors des mises jour.
Moins de choix pour un outil dadministration,
Apache open source POC, dveloppement facteur important de choix dune distribution.
Pour le dveloppement, il vaut mieux leur prfrer
une VM bac sable dun diteur gnraliste
comme Cloudera ou Hortonworks.

Gratuit et en grande partie open source (les


exceptions concernent les produits entreprise:
Cloudera Distribution Projet gnraliste administration, PRA, etc.).
including Apache Intgration avec les produits des Lditeur propose du support et des services en
Hadoop (CDH) partenaires SAS, Oracle ou IBM. option.
Projets phares : Impala, Sentry, Cloudera Manager
(propritaire).

Gratuit et open source.


Projet gnraliste
Hortonworks Data Lditeur propose du support et des services en
Intgration avec les produits
Platform (HDP) option (support de niveau 1 en franais possible).
des partenaires SAS, Teradata.
Projets phares : Stinger, Ranger, Knox, Ambari.

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

61 Distribution payante et supporte par lditeur,


IBM Infosphere base sur la souche Apache.
Projet vertical full IBM
BigInsights Elle embarque des outils propritaires IBM de data
mining.

SPCIALISES

Distribution payante et supporte par lditeur.


Projet avec stockage multi-sites. MapRFS est une rimplmentation complte dHDFS.
MapR Accs mixtes batch/alatoire Amazon Web Services propose MapR dans son
de type NFS. offre Elastic MapReduce, comme alternative la
distribution Apache.
Projets phares : Drill.

APPLIANCES & CLOUD

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

Projet ncessitant une architecture


hybride (Hadoop, Teradata)
avec des transferts haut dbit. La distribution Hadoop embarque est celle
Teradata
Intgration avec les autres outils dHortonworks (HDP).
de la suite Teradata (Aster,
Intelligent Query).

Projet ncessitant une architecture


Oracle Big Data hybride (Hadoop, Oracle Database La distribution Hadoop embarque est celle de
Appliance ou Exadata) avec des transferts Cloudera (CDH).
haut dbit.
OCTO > HADOOP - FEUILLE DE ROUTE

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

Un exemple de cluster complet,


avec 2 masters, 3 slaves et 1 edge node

Les clients
63 arrivent par ici !

MASTER 1 MASTER 2 EDGE

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

SLAVE 1 SLAVE 2 SLAVE 3

Data node
Data node Data node
Node manager
Node manager Node manager
Zookeeper
OCTO > HADOOP - FEUILLE DE ROUTE

Serveurs physiques Le dimensionnement


ou virtuels?
Quand il sagit de dimensionner des infrastructures
Cest une question qui revient souvent. Parfois Hadoop, on peut jouer sur deux paramtres: la
mme, cest la premire question quon nous taille et le nombre des slave nodes. Ce nombre
pose : pour beaucoup dorganisations, il est est au minimum de trois (le plus petit cluster
plus facile dobtenir des machines virtuelles, de production viable est donc de 5 nuds: 2
mais Hadoop les supporte-t-il? masters en haute disponibilit, et 3 slaves pour
respecter le facteur de rplication dHDFS).
Notre rponse est en gnral la suivante: oui
mais il faut prendre des prcautions. Des Nous avons voqu au dbut de ce document
master et slave nodes virtuels font trs bien la notion de commodity hardware. Pour rappel,
laffaire si on accepte le risque davoir des per- il sagit des serveurs faciles obtenir et de cot
formances moindres en cas de contentions sur unitaire raisonnable, en gnral ceux qui sont
les chssis ou les disques partags: ce risque au catalogue des standards de lentreprise.
est souvent acceptable Lide est donc de choisir
pour un POC. Attention
64
Pour beaucoup dorganisations, dans un tel catalogue,
quand mme, sil y a dans la mesure du possible
dautres applications sur le il est plus facile dobtenir en limitant les person-
mme chssis, elles peuvent des machines virtuelles, mais nalisations qui rajoutent
ptir de la gourmandise Hadoop les supporte-t-il? des cots. Lditeur de la
dHadoop en I/O disques distribution que vous aurez
et rseau pensez limiter
Cela fonctionne mais il faut choisie aura certainement
les bandes passantes du prendre des prcautions. des abaques qui vous per-
cluster. mettront de monter un clus-
ter gnraliste compatible avec nos hypothses
Les edge nodes, eux, sont moins sollicits
de dpart. De ce point de vue, les prconisations
que les masters et slave nodes : ils peuvent
des grands diteurs diffrent quelque peu
tre virtuels. Dans le cas dun cluster mixte
mais heureusement se rejoignent sur lessentiel.
virtuel et physique, cela complexifie un peu
la configuration rseau, serveurs physiques Demain, les progrs dHadoop remettront ces
et virtuels devant appartenir un mme chiffres en question. Un paramtre en particulier
rseau virtuel (VLAN) mais dautres avantages devra tre revu : le dimensionnement de
quilibrent la balance. Ainsi, lhyperviseur la mmoire. En effet, HDFS est en train de
peut offrir des services de redondance avec se doter de fonctionnalits de cache, afin
basculement automatique, sur des serveurs dacclrer laccs aux fichiers frquemment
qui sont importants car accds directement lus dans les traitements. Processus, traitements
par les utilisateurs. et caches vont ainsi se trouver en comptition
pour la mmoire des slave nodes.
OCTO > HADOOP - FEUILLE DE ROUTE

Des configurations matrielles moyennes


pour dmarrer sur Hadoop

TYPE DE NUD CPU RAM DISQUE RSEAU

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

Pour des workloads


plus compliqus
Les nouvelles architectures
Les hypothses gnralistes, qui servent de base physiques dHadoop
aux abaques ci-dessus, ne sont pas toujours
suffisantes pour dimensionner correctement. Des mcrants ont loutrecuidance de
Lorsque dautres applications sont en jeu, il mettre en question le principe fondateur
de larchitecture dHadoop : la
faut affiner. Comme il est impossible dtre
colocalisation des traitements et des
prcis en dehors de tout contexte, contentons-
donnes. Faut-il envoyer les hrtiques
nous de donner quelques rgles. au bcher ?
Selon le type de traitement envisag, les Et bien non. Le principe de colocalisation
besoins en ressources ne seront pas les est tout sauf un dogme. Il est vrai
mmes. Ainsi, si HBase a besoin de mmoire pour du commodity hardware. Aprs
pour tre performant (mise en cache), Storm a tout, quest-ce qui nous empche
surtout besoin de CPU. dinvestir dans un matriel diffrent ?
66 En particulier, un rseau performant
Laffaire se complique encore lorsquun entre les nuds dun cluster rend
cluster multi-usages est mis en place, comptitif laccs distant aux donnes.
pour satisfaire des utilisateurs humains Les technologies (RDMA sur Infiniband,
divers et des besoins applicatifs. Dans ces RoCE, etc.) combinent hauts dbits
conditions, les sollicitations sont imprvisibles (jusqu 40 Gbit/s) et une latence faible,
de lordre de la s.
et les traitements varis, rendant difficile un
dimensionnement pragmatique. Il faut analyser Librs du joug de la colocalisation,
les besoins prcis, leurs proportions dans le mix nous pouvons spcialiser les nuds :
des usages, et faire des hypothses de passage des nuds de stockage ddis certains
lchelle en appliquant des rgles de 3. mdia (disque dur, SSD, mmoire, etc.),
des nuds de calcul optimiss par usage
Quand les besoins sopposent trop fortement,
(intensif en I/O, en calcul ou en mmoire,
il nest pas conomique de dimensionner
GPU, basse consommation, etc.), voil
au pire, et on peut tre amen ddier des
de quoi construire des clusters optimiss
nuds spcifiques du cluster certains types et surtout trs volutifs au gr des
dapplications. Les labels de YARN, rcemment besoins changeants. un cot qui
ajouts, servent prcisment cela. Sinon, il reste bien plus important que celui du
reste toujours possible dentretenir plusieurs commodity classique! Mais on na rien
clusters! sans rien.

En tout cas une rgle reste valable : que ce


soit pour un cluster global ou des bulles
OCTO > HADOOP - FEUILLE DE ROUTE

de nuds ddis via les labels, la principale


variable dajustement reste le nombre de slave
nodes. Il faut bien sr valider les hypothses
en suivant la consommation des ressources
au jour le jour, et faire des projections pour
sassurer que le cluster est bien dimensionn
pour les besoins quil sert. Sil savre trop juste,
il est toujours possible dajouter des nuds a
posteriori on nest pas contraint dinvestir
tout de suite dans une configuration muscle
en priant pour quelle suffise du premier coup.

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

Prenons lexemple dun traitement MapReduce. de marge, on arrive un ordre de grandeur de


Chaque mapper va lire des donnes dHDFS 8 Go par container. Multipliez par le nombre
par blocs entiers. Sur un serveur donn, il de curs, ajoutez 1Go pour le systme
faut viter que les mappers ne sollicitent plus dexploitation, et vous obtenez la mmoire
daccs disque que ce que la machine est totale dun slave node. La configuration fait
capable de fournir, pour viter un goulet au intervenir quantit dautres paramtres bien
niveau des contrleurs disques. On doit donc plus fins, comme les buffers de tri pour le
veiller brancher 1 2 disques par cur de shuffle & sort, ou les rapports entre mmoire
calcul (en tenant compte de lhyperthreading) physique (RAM) et virtuelle (dbordement sur
sur chaque serveur do le montage en JBOD disque quand la RAM est pleine, au dtriment
pour les data nodes. Chaque disque disposant des performances). Il sagit de tuning labor
de son contrleur indpendant, il pourra en des fins de performances, spcifiques une
principe servir un mapper de manire exclusive. application, mais nous ne nous y aventurerons
pas ici!
En ce qui concerne la RAM, il faut raisonner
l aussi par container. Un container est Pour le rseau, lquation est plus simple et les
essentiellement une JVM, dont les besoins en choix plus rduits. Les slave nodes changent
69 mmoire seront la somme de deux paramtres: des donnes en permanence, pour la rplication
HDFS, lors du shuffle & sort Pour cette raison,
La PermGen: mmoire occupe par les
on part souvent sur des liens 1 Gb/s, offrant
classes Java du JDK et des frameworks Hadoop
un bon rapport performance/cot. L encore,
utiliss par le traitement (MapReduce ou Tez
des applications spcifiques peuvent apporter
par exemple). Cette taille est incompressible,
des contraintes diffrentes. Noubliez pas de
invariable pour un traitement donn, et peu
dimensionner correctement les liens rseaux
leve: infrieure 1Go.
qui relient les racks entre eux : dans le pire
La heap: mmoire obtenue la demande des cas, ils devront supporter des changes
par le code des frameworks et du traitement, au simultans entre tous les serveurs du cluster.
fur et mesure de son excution. Elle dpend Pour un rack de 10 serveurs, on prvoit ainsi
fortement de lenvironnement : traitement mis des switches top-of-rack de 10 x 1 = 10 Gb/s.
en uvre et donnes sur lesquelles il opre. Il
nest pas toujours facile de lestimer lavance. Pour aller plus loin, nous vous suggrons de
visionner des prsentations trs pousses sur
Avec MapReduce, on configure sparment le dimensionnement des clusters Hadoop,
la heap des mappers et des reducers. On par exemple http://fr.slideshare.net/Hadoop_
considre quune valeur de dpart raisonnable Summit/costing-your-bug-data-operations,
est 4Go pour les mappers et 6Go pour les par des ingnieurs de chez Yahoo!. Cette
reducers, quitte augmenter ces valeurs si des prsentation combine les aspects techniques
traitements chouent par manque de mmoire. et financiers pour vous aider trouver les
En ajoutant les besoins de PermGen et un peu configurations optimales.
Had p
aujourdhui
e+ demain
On assite un rel mouvement de trans-
formation dHadoop, dmarr depuis
maintenant 2 ans. Lcosystme volue
dans toutes ses couches: socle technique,
applications et outils de manipulation des
donnes. Cest parfois difficile suivre,
cela mritait bien un travail de synthse.
Si vous voulez savoir quoi ressemblera
Hadoop dans le futur, montez dans la
DeLorean!
OCTO > HADOOP - FEUILLE DE ROUTE

Ds aujourdhui :
des modles de programmation
plus varis que MapReduce

Lintroduction de YARN a libr le dveloppeur Des diteurs commerciaux proposent aussi


des contingences de MapReduce. YARN est une implmentation Hadoop de leur moteur
votre disposition pour crire lalgorithme aux de calcul, permettant leurs clients de faire
petits oignons qui vous fera gagner la partie vivre leur patrimoine applicatif sur Hadoop.
72 face vos concurrents: il suffit de se conformer Cest le cas de SAS, ou dActian par exemple.
ses API Java et de construire un JAR
contenant lapplication, pour quelle sexcute Au final, le nombre de manires daccder
sur le cluster, en mode distribu. une mme donne est bien vaste. Et bien sr,
tous les traitements et requtes excuts par ce
Cependant, on se lance rarement dans le petit monde se partagent respectueusement
dveloppement de bas niveau sur YARN. Le les ressources du cluster; cest dailleurs la
vritable apport de ce framework est dans mission premire de YARN.
lexplosion du nombre doutils quil a permis
damener sur Hadoop. MapReduce et ses
drivs (Hive, Pig) bien sr, mais aussi HBase,
Tez, Impala, Drill, Storm, Spark, SolR, etc. En
batch, en interactif ou en temps rel; par
programmation, par script ou par labstraction
du machine learning, la couverture fonctionnelle
dHadoop sest considrablement tendue et
continue de stendre18.

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.

Une capacit excuter plusieurs workloads: Support de plusieurs workloads


transactionnel, temps rel (streaming), interactif, AU POINT
batch analytique ou de machine learning.
Partage des ressources
Un partage harmonieux des ressources de A FONCTIONNE
calcul et de stockage entre les clients, avec des
rgles de scurit adquates. Gouvernance et scurit
PEUT MIEUX FAIRE
Une gouvernance des donnes stockes,
avec des fonctions de traabilit, de gestion Interoprabilit logicielle
du cycle de vie (purge des historiques avec ON Y EST PRESQUE
rotation, par exemple), et des mcanismes de
scurit robustes. Exploitabilit
ENCORE UN PEU TECHNIQUE
Une interoprabilit logicielle grce une
OCTO > HADOOP - FEUILLE DE ROUTE

En particulier, YARN et HDFS bougent beaucoup.


Les labels YARN annoncent la spcialisation
des nuds en fonction de lusage, calcul ou
stockage par exemple. HDFS est maintenant
capable dappliquer des politiques de stockage
en fonction du medium sous-jacent (disque
dur, SSD voire mmoire pour les donnes
chaudes). En particulier, lapparition de caches
mmoire au niveau des data nodes devrait
apporter des gains de performances significatifs
en diminuant les accs disques. Cela va de pair
avec laugmentation des capacits RAM des
serveurs.

Un domaine sur lequel il convient dtre vigilant


est celui de la gouvernance des donnes : tre
capable dexplorer simplement les donnes
74
prsentes dans le cluster (un Toad pour
Hadoop, en quelque sorte), pouvoir dterminer
les oprations qui ont conduit la construction
dun dataset particulier, ou encore tre en
mesure de purger la plateforme des donnes
primes. Les outils de la communaut open
source se font encore attendre; Apache Atlas
est une belle promesse.

L'exploitabilit mriterait aussi de remonter


dans les couches pour fournir une vision agrge
de ce que qui se passe sur la plateforme, vision
laquelle on accde aujourd'hui en jonglant
avec des fichiers de logs joyeusement rpartis
sur toutes les machines.
OCTO > HADOOP - FEUILLE DE ROUTE

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

Dans un futur proche:


vers des clusters la demande
Le multi-tenant, cest bien, mais cest comme haute disponibilit active, HBase en plus, un
tout, il ne faut pas en abuser. En particulier, il caf et laddition et pouf! les machines sont
est une chose quil faut viter, cest davoir un rserves, lances et pr-installes.
cluster unique qui hbergerait la production
industrielle, des projets dinnovation htroclites, Les outils de dploiement de bas niveau
des environnements de dveloppements et existent depuis longtemps, mais ils ne
dintgration. Mme si larchitecture dHadoop permettent pas cela. On pense aux outils
le permet techniquement, ces espaces ont des Hadoop bien sr (Cloudera Manager ou
cycles de vie trop diffrents pour cohabiter et Ambari), Chef et Puppet (des automates de
76
vous aurez besoin de proposer des clusters dploiement de configurations), ou Ansible
plus ou moins phmres voire la demande. (un SSH distribu scriptable). Il existe encore
peu de livres de recettes (cookbooks) pour
En particulier, la gestion des environnements Hadoop, et surtout ces outils ne savent pas
projets est friande de ce type doffre. Dautant rserver des machines sur un cloud public ou
plus avec Hadoop, o il est essentiel que priv. Il faut disposer des machines dabord.
les dveloppements et les tests soient faits
sur des clusters reprsentatifs, en termes de Pour rpondre notre besoin, il faut se tourner
configuration (sinon de performances) : le du ct des solutions de cloud. Lune dentre
moindre cart peut provoquer des diffrences elles en particulier fait beaucoup parler delle
de comportement trs difficiles traquer. Et en ce moment: il sagit dOpenStack. Le projet
a, vous pouvez nous croire, cest du vcu! Sahara (ex-Savanna), sous sa houlette, a pour
but de proposer des distributions Hadoop sur
Tout ceci rejoint le discours dj tenu sur des clouds OpenStack19.
DevOps et sur la ncessit dautomatiser les
oprations. La communaut ne sest pas trompe, Comme approche alternative, YARN est en
et les initiatives arrivent! passe de supporter des traitements soumis
sous forme de conteneurs Docker. Cela ouvre
Ce que lon voudrait, cest un service qui la porte des applications compltement
lon demande simplement un cluster avec autonomes dans leur packaging (penser aux
10 data nodes pour commencer, lastique, la WAR et EAR du monde JEE).

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

Cependant, ces contribu-


capable de traiter aussi est vrai que la politique
de versions et la multiplici-
teurs-utilisateurs repr- bien du calcul scientifique
t des diteurs apportent
sentent un type dentre- que du fichier ou du une certaine confusion!
prise particulier, dont la
flux trs haut dbit, Qui peut dire quel sera
culture est encore assez lcosystme de rfrence
peu rpandue en Europe. en sappuyant sur des
de demain? Pas nous, en
Ils ont su mettre en place algorithmes de plus en tout cas pas au moment
des comptences et une plus distribus. o nous crivons ces
organisation interne fa- lignes...
vorables laccueil dune
telle plateforme. Pour des entreprises plus Tout cela va mettre un certain temps se
classiques, si on peut dire, la technologie dcanter. Et pourtant, que dopportunits
est encore mal connue (nous esprons quand saisir dici l Il est tout fait possible, et
mme que la diffusion de cette brochure aura souhaitable mme, dadopter Hadoop petit
permis de mitiger ce constat!). petit, pour glisser vers de linnovation digitale
OCTO > HADOOP - FEUILLE DE ROUTE

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.

Pour autant, il ne faut pas voir en Hadoop un


super marteau capable de transformer tous les
problmes de calcul en clous. Un framework
de calcul distribu, un systme dexploitation
Big Data, cest pourtant tentant! Certains
problmes, notamment ceux o le calcul pur
domine, ou bien ceux ayant faire de la
donne trs structure, pourraient tre rsolus
plus efficacement avec dautres technologies:
bases de donnes parallles, grille de calcul
sur GPU, etc. Le critre final reste le cot de
OCTO > HADOOP - FEUILLE DE ROUTE

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!

Selon ladage, un lphant se dvore bouche par bouche. Tout cela


naurait pu se faire sans la mastication dun grand nombre dOctos dont
voici les trigrammes : AHU, AMB, BJC, BLA, CAB, CAM, CBR, DZO,
EBI, FHI, FRD, ILE, JCA, JGL, JGO, JOB, JPI, LCI, MAN, MBE, MBO,
MDE, MDO, MGU, MLU, NGR, NSC, OMA, RCA, RGH, RKO, RMA,
RSA, SDL, SIM, SWI, TVI.

Le livre peine imprim, Hadoop a dj chang Laventure continue !


OCTO > HADOOP - FEUILLE DE ROUTE

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

OCTO Technology est un cabinet de conseil et de ralisation IT fond en


1998 aujourdhui prsent dans cinq pays : La France, le Maroc, la Suisse, le
Brsil et lAustralie. Les consultants OCTO accompagnent leurs clients dans
la transformation digitale de leurs entreprises en intervenant la fois sur la
technologie, la mthodologie et la comprhension de leurs enjeux mtier. Les
quipes OCTO utilisent la technologie et la crativit pour les accompagner
dans la construction de nouveaux business models. Pour la 4e anne, OCTO sest
positionn sur le podium du palmars Great Place to Work des entreprises de
moins de 500 salaris o il fait bon travailler. Le cabinet organise en parallle
USI qui s'est impose depuis 2008 comme une rfrence parmi les plus grandes
confrences internationales sur la transformation digitale.
CARTOGRAPHIE
HAD OP
Niveau
dabstraction GET/PUT PROGRAMMATION JAVA/SCALA SCRIPT SQL, SEARCH MACHINE LEARNING
Latence
TEMPS REL

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

AMBARI VIEWS KNOX KNOX RANGER


HIVE SERVER 2 HBASE REST/
+ ODBC/JDBC THRIFT SEVER

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

Outillage ACCS (IHM) CONNECTEUR SCURIT GOUVERNANCE, ADMINISTRATION MONITORING

DITEURS PORTEURS MATURIT DES OUTILS


(seul lcosystme open source
est reprsent)

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.

OCTO Technology 2016


Les informations contenues dans ce document prsentent le point de vue actuel
d'OCTO Technology sur les sujets voqus, la date de publication. Tout extrait
ou diffusion partielle est interdit sans l'autorisation pralable d'OCTO
Technology.
Les noms de produits ou de socits cits dans ce document peuvent tre les
marques dposes par leurs propritaires respectifs.
www.octo.com - blog.octo.com

PARIS I RABAT I LAUSANNE I SO PAULO I SYDNEY

Anda mungkin juga menyukai