Slide 1

Slide 1 text

Hadoop et MongoDb by Pablo Lopez @pLopezFr 1 au secours de téraoctets de logs inexploitables chez l’un des plus grands sites marchands européens.

Slide 2

Slide 2 text

Abstract • Une plateforme de production hors normes, exigeante • Une solution BigData innovante • De nombreux usages • Voir toujours plus grand 2

Slide 3

Slide 3 text

3 Speaker Pablo Lopez @pLopezFr blog.xebia.fr Big Data Architect DevOps Fort Traffic Performance

Slide 4

Slide 4 text

C’est l’histoire d’une startup... 4

Slide 5

Slide 5 text

La course à l’armement 5 • ~500 serveurs de production • 80 applications • 5 JVMs / serveur • 13 niveaux de load balancing. !" #!" $!!" $#!" %!!" %#!" &!!" !" '!!" '#!" !"#$%&''(&')&%*&+%)'(&',%"(+-."/' &/0%&'1223'&0'1241'

Slide 6

Slide 6 text

Une mine d’informations... 6 • Logs techniques / fonctionnelles / analytiques • 5 à 10 fichiers de logs par JVMs • 7 Go de logs / serveur / jour

Slide 7

Slide 7 text

... et un calvaire pour les équipes 7 • Rotation trop rapide • Collecte semi automatisée • Transferts laborieux • Volume à traiter colossal

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Les fonctionnalités recherchées 9 •Centraliser •Sécuriser •Analyser •Informer •Archiver •En temps réel

Slide 10

Slide 10 text

De grandes responsabilités 10 • Disponibilité 99,995 % • Temps de réponse sous la seconde • Base de données = Single Point of Failure • Coûts maitrisés

Slide 11

Slide 11 text

Big Data et open source 11

Slide 12

Slide 12 text

Centraliser 12

Slide 13

Slide 13 text

Centraliser (v2) 13

Slide 14

Slide 14 text

Sécuriser 14

Slide 15

Slide 15 text

Analyser 15

Slide 16

Slide 16 text

Informer / Archiver 16

Slide 17

Slide 17 text

Vue end-to-end 17

Slide 18

Slide 18 text

Vue end-to-end 17 12:49:22.203 DEBUG

Slide 19

Slide 19 text

Vue end-to-end 17 12:49:22.203 DEBUG

Slide 20

Slide 20 text

Vue end-to-end 17 12:49:22.203 DEBUG

Slide 21

Slide 21 text

Vue end-to-end 17 12:49:22.203 DEBUG

Slide 22

Slide 22 text

Vue end-to-end 17 12:49:22.203 DEBUG 12:49:22.203 DEBUG

Slide 23

Slide 23 text

Vue end-to-end 17 12:49:22.203 DEBUG 12:49:22.203 DEBUG

Slide 24

Slide 24 text

Vue end-to-end 17 12:49:22.203 DEBUG 12:49:22.203 DEBUG

Slide 25

Slide 25 text

Vue end-to-end 17 12:49:22.203 DEBUG 12:49:22.203 DEBUG

Slide 26

Slide 26 text

Vue end-to-end 17 12:49:22.203 DEBUG

Slide 27

Slide 27 text

Vue end-to-end 17 {service:HelloWorld, count:2}

Slide 28

Slide 28 text

Vue end-to-end 17 {service:HelloWorld, count:2}

Slide 29

Slide 29 text

Vue end-to-end 17 {service:HelloWorld, count:2}

Slide 30

Slide 30 text

Vue end-to-end 17

Slide 31

Slide 31 text

Le défi du temps réel 18 !" #" $!" $#" %!" %#" &!" " '!" '#" Temps d’exécution du job en minutes

Slide 32

Slide 32 text

Le défi du temps réel 18 !" #" $!" $#" %!" %#" &!" " '!" '#" Temps d’exécution du job en minutes Version initiale

Slide 33

Slide 33 text

Le défi du temps réel 18 !" #" $!" $#" %!" %#" &!" " '!" '#" Temps d’exécution du job en minutes Version initiale Tuning infrastructure

Slide 34

Slide 34 text

Le défi du temps réel 18 !" #" $!" $#" %!" %#" &!" " '!" '#" Temps d’exécution du job en minutes Version initiale Tuning infrastructure Tuning code

Slide 35

Slide 35 text

Utilisation quotidienne 19

Slide 36

Slide 36 text

Utilisation quotidienne 19

Slide 37

Slide 37 text

Utilisation quotidienne 19

Slide 38

Slide 38 text

Utilisation quotidienne 19

Slide 39

Slide 39 text

Zoom sur MongoDb 20

Slide 40

Slide 40 text

Flexibilité 21 • Map/Reduce, version initiale { "_id" : ObjectId("4fce8144bbaed5a2436f3a86"), "PageURL" : "http://myDomain.com/mapage/", "Day" : "2012-01-01", "Views" : "10" } • Map/Reduce, version évoluée { "_id" : ObjectId("4fd8eebc2a27d319d1324a31"), "PageURL" : "http://myDomain.com/mapage/", "Day" : "2012-06-14", "Views" : "10", "AverageDisplayTime" : "101" }

Slide 41

Slide 41 text

Maturité des API 22 Cluster MongoDb TCP TCP !"#$%&'%()**+(,-)./ 01+234567588-9:).+ 5885;<58=>?*9+56:

Slide 42

Slide 42 text

Haute disponibilité 23 Cluster MongoDb Member 2 Primary Arbiter Member 1

Slide 43

Slide 43 text

Scalabilité 24 Cluster MongoDb Shard B Shard C Shard A

Slide 44

Slide 44 text

Architecture 25 TaskTraker Map Reduce Mongos ShardA - Member 1 ShardB - Member 1 ShardC - Voter ShardA - Member 2 ShardB - Voter ShardC - Member 2 ShardA - Voter ShardB - Member 2 ShardC - Member 1 Mongo Config Mongo Config Mongo Config TaskTraker Map Reduce Mongos TaskTraker Map Reduce Mongos TaskTraker Map Reduce Mongos

Slide 45

Slide 45 text

Next architecture 26 TaskTraker Map Reduce Mongos ShardA - Primary ShardA - Secondary ShardB - Voter ShardB - Primary Mongo Config Mongo Config TaskTraker Map Reduce Mongos TaskTraker Map Reduce Mongos TaskTraker Map Reduce Mongos ShardA - Voter ShardB - Secondary Mongo Config

Slide 46

Slide 46 text

Réservé aux grands ? 27

Slide 47

Slide 47 text

L’équipe 28 • Philippe Martin martinphilippe@yahoo.com • Arnault Jeanson @ArnaultJeanson • Jean-Philippe Hautin @JpHautin • Jawed Khelil • François Ostyn • Pierre Revellin • Olivier Del Favero

Slide 48

Slide 48 text

Des questions ? 29