Frédéric Schafer
fschafer@octo.com
Philippe Kernevez
pkernevez@octo.com
09/06/2016
2
BIG DATA @ OCTO : THE NUMBERS
TB, the biggest
volume of
distributed storage
on a single project
250
TB, the biggest
volume of data
analyzed by
OCTO’s data
scientists
18
Is the number of
Big Data projects at
OCTO in the past 12
months
The number of
OCTO certified on
the Hadoop
platform
30
850
800
cores, the biggest
Hadoop cluster
built by OCTO
16 The number of active partnerships with
major Big Data actors
3
2016 is the Year of Big Data 
@OCTO Switzerland
Afterworks
Big Data Romandie
4
Présente
academy.octo.ch
DEVOPS
AGILE & LEAN
CRAFTSMANSHIP
ARCHITECTURES DU SI
USER EXPERIENCE (UX)
STRATEGIE DIGITALE
WEB & MOBILE
HADOOP
5
AGENDA
6
HADOOP, qu’est-ce que c’est ?
Quelques cas d’usage
Industrialisation de la plateforme
AGENDA
7
HADOOP, qu’est-ce que c’est ?
Quelques cas d’usage
Industrialisation de la plateforme
HADOOP ?
8
scalability
HADOOP ?
9
Ecosystème
Open
source
Stocker et
traiter de
larges jeux
de données
Scalable
Sur des
serveurs de
type
“commodity
hardware”
Tolérant aux
pannes
HISTORIQUE
10
2003
2004
2005
2006
2007
2008
2009
2012
2013
2014
2016
109 searches
106 web pages
1000 nodes @
Yahoo!
✔
4000 nodes
✔
Hadoop sorted 1 Po in 17h
109 searches
106 web pages
✔
« Vanilla » IT
Relational DB,
Application server,
ETL, ESB,
BPM
Distributed
Storage
Extreme
Transaction
Processing
Parallel
Programming
Event Stream
Processing
10 To online 3,000 TPS
10 threads/core3,000 events/sec
Events
intensive
Transaction
intensive
Storage
intensive
Computation
intensive
LES LIMITES DES OUTILS TRADITIONNELS*
* Il ne s’agit pas de limites absolues, mais d’ordres de grandeur à partir desquels les coûts de mise en œuvre explosent
(hardware spécialisé, expertise, etc.)
11
LES LIMITES DES OUTILS TRADITIONNELS
Events
intensive
Transaction
intensive
Storage
intensive
Computation
intensive
NoSQL
CEP, ESP
In-memory
Grid, GPU
12
HADOOP : VOLUME, VÉLOCITÉ MAIS AUSSI VARIÉTÉ
13
VVolume
V Variety
VVelocity Structured Data
Unstructured Data
Semi-Structured
Data
HADOOP : DES DISTRIBUTIONS [1/2]
¤  Pourquoi une distribution ?
>  Une installation pour avoir la plupart des outils d’Hadoop
>  Combinaison de versions compatibles
14
DIVERSITÉ DE L’ÉCOSYSTÈME
15
¤  Chaque composant est un projet indépendant (cycle de vie, équipe, etc.)
MATURITÉ
16
¤  Hadoop est un écosystème en pleine évolution :
>  Les principaux composants sont matures
>  D’autres sont encore jeunes
HADOOP : DES DISTRIBUTIONS [1/2]
¤  Pourquoi une distribution ?
>  Une installation pour avoir la plupart des outils d’Hadoop
>  Combinaison de versions compatibles
>  Upgrade
>  Support éditeur
¤  Trois distributeurs majeurs :
>  HortonWorks
>  Cloudera
>  MapR
¤  Les éditeurs traditionnels sont des suiveurs sur Hadoop
>  Teradata, Oracle, Microsoft, IBM, etc.
>  Certains s’appuient sur une des 3 distributions majeures
17
HADOOP : DES DISTRIBUTIONS [2/2]
18
400 KLOC
200 KLOC
0
AGENDA
19
HADOOP, qu'est-ce que c’est ?
Quelques cas d’usage
Industrialisation de la plateforme
CARTOGRAPHIE
20
DATA MANAGEMENT
DATA ACCESSDATA WORKFLOW MANAGEMENT
STOCKAGE
22
ENJEUX
ENJEUX
Extreme
Transaction
Processing
Parallel
Programming
Event Stream
Processing
Distributed
Storage
YOU
ARE
HERE
23
Events
intensive
Transaction
intensive
Storage
intensive
Computation
intensive
LA RÉPONSE HADOOP - HDFS
24
DATA MANAGEMENT
1 ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
°
°
N
HDFS
(Hadoop Distributed File System)
Hadoop repose sur HDFS, un système de fichiers distribués hautement disponible
LA RÉPONSE HADOOP - HDFS
25
~ 3’000 CHF / To
2014
APPEND ONLY - WRITE ONCE READ MANY
UNIX “LIKE”
¤  HDFS supporte des commandes similaires aux systèmes de fichiers sur Linux :
>  Ajout, lecture et suppression de fichiers
>  Créer, lister et supprimer des répertoires
>  Gérer les permissions et propriétés des fichiers et des répertoires
27
HDFS
A
Fichier
B
C
D
E
F
G
Le fichier est
découpé en blocs
NameNodes
DataNodes
Rogatus ad ultimum admissusque in consistorium ambage nulla praegressa inconsiderate et leviter proficiscere inquit ut praeceptum est, Caesar sciens quod si cessaveris, et tuas
epalatii tui auferri
iubebo prope diem
annonas. hocque
solo contumaciter
dicto subiratus
abscessit nec in
conspectum eius
postea venit
saepius arcessitus.
puis réparti sur les
nœuds
28
DISTRIBUTION DES DONNÉES ET FAILOVER
A B C
D E F
G
A
G
B C
D E F
Et répliqué
(par default x3, ici x2)
DataNodes
29
DISTRIBUTION DES DONNÉES ET FAILOVER
A B C
D E F
G
AG
B
C
D
E
F
!
AG
E
Les blocks A, E, G
sont maintenant
sous-répliqués
Il sont alors
répliqués sur
d’autres nœuds
DataNodes
30
ALIMENTATION ?
31
STOCKAGE
Composants et flux
32
RDBMS
Log Data,
Event Data, Social
Media, etc.
Files
HDFS CLI
CARTOGRAPHIE HADOOP
33
DATA MANAGEMENT
1 ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
°
°
N
HDFS
(Hadoop Distributed File System)
Flume Sqoop
DATA WORKFLOW MANAGEMENT
Oozie
EXEMPLE DE MISE EN ŒUVRE
¤  Client bancaire
¤  Stockage de données de marché
34
¤  50 To / an, redondance * 3(7200 trs/min)
¤  2 NameNodes : 1 proc, 32Go RAM, 6 * 2 To en RAID (HA)
¤  4 DataNodes : 1 proc, 32Go RAM, 12 * 4 To / serveurs
(7200 trs/min)
¤  Investissement : +/- 50’000 CHF (hardware)
>  Soit : +/- 1’000 CHF / To
TRAITEMENTS
LOURDS EN IO
ENJEUX
Distributed
Storage
Extreme
Transaction
Processing
Parallel
Programming
Event Stream
Processing
Exécuter un traitement sur des données volumineuses réparties sur un grand
nombre de serveurs (HDFS)
YOU
ARE
HERE
36
Events
intensive
Transaction
intensive
Storage
intensive
Computation
intensive
LA RÉPONSE HADOOP
37
cluster
0100011101
010101101
010001110101010
010001110
0100011
Architecture classique Architecture Hadoop
cluster Hadoop
Déplacer les traitements au plus près des données, plutôt que l’inverse
37
FONCTIONNEMENT DE MAPREDUCE
Hive – MR
SELECT a.state
JOIN (a, c)
SELECT c.price
SELECT b.id
JOIN(a, b)
GROUP BY a.state
COUNT(*)
AVERAGE(c.price)
M M M
R R
M M
R
M M
R
M M
R
HDFS
HDFS
HDFS
SELECT a.state, COUNT(*), AVERAGE(c.price)
FROM a
JOIN b ON (a.id = b.id)
JOIN c ON (a.itemId = c.itemId)
GROUP BY a.state
38
DÉPASSER MAPREDUCE [1/4]
¤  MapReduce, le modèle de programmation à l’origine d’Hadoop, s’avère
contraignant et sous-optimisé pour certains types de traitements
Map Reduce
Map Reduce
Map Reduce
Traitement unique
4 phases d’I/O
Traitement itératif
N x 4 phases d’I/O
39
DÉPASSER MAPREDUCE [2/4]
Dans	le	contexte	d’Hadoop	1,	
MapReduce	joue	le	rôle	de…	
A:	Algorithme	distribué	
B:	Framework	de	dév.	
C:	Plateforme	de	distribuJon	
D:	La	réponse	D	
40
DÉPASSER MAPREDUCE [2/4]
Dans	le	contexte	d’Hadoop	1,	
MapReduce	joue	le	rôle	de…	
A:	Algorithme	distribué	
B:	Framework	de	dév.	
C:	Plateforme	de	distribuJon	
D:	La	réponse	D	
41
DÉPASSER MAPREDUCE [3/4]
Hadoop 1.x
HDFS	
(redundant,	reliable	storage)	
MapReduce	
(cluster	resource	management	
	&	data	processing)	
Batch Apps
HDFS	
(redundant,	reliable	storage)	
YARN	
(cluster	resource	management)	
MapReduce	
(data	processing)	
Others	
(data	processing)	
Hadoop 2.x
Tez	
(data	processing)	
Batch, Interactive, Streaming, etc.
42
DÉPASSER MAPREDUCE [4/4]
Fonctionnement de TEZ
Hive – MR
SELECT a.state
JOIN (a, c)
SELECT c.price
SELECT b.id
JOIN(a, b)
GROUP BY a.state
COUNT(*)
AVERAGE(c.price)
M M M
R R
M M
R
M M
R
M M
R
HDFS
HDFS
HDFS
SELECT a.state, COUNT(*), AVERAGE(c.price)
FROM a
JOIN b ON (a.id = b.id)
JOIN c ON (a.itemId = c.itemId)
GROUP BY a.state
M MM
R R
R
M M
R
R
SELECT a.state,
c.itemId
JOIN (a, c)
JOIN(a, b)
GROUP BY a.state
COUNT(*)
AVERAGE(c.price)
SELECT b.id
Tez avoids
unnecessary writing to
HDFS
Hive – Tez
43
CARTOGRAPHIE HADOOP
44
YARN : Data Operating System
DATA MANAGEMENT
DATA ACCESS
1 ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
°
°
N
HDFS
(Hadoop Distributed File System)
Flume Sqoop
Map
Reduce
Spark
Tez
DATA WORKFLOW MANAGEMENT
Oozie
MapReduceMapReduce
45
EXEMPLE :
NETTOYAGE ET
PRÉPARATION DES DONNÉES
LA RÉPONSE HADOOP
46
Files (Avro,…)
HBase HCatalog
ORC2
…
Pig
PIG : LA PROBLÉMATIQUE
47
CARTOGRAPHIE HADOOP
48
YARN : Data Operating System
DATA MANAGEMENT
DATA ACCESS
1 ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
°
°
N
HDFS
(Hadoop Distributed File System)
Flume Sqoop
Map
Reduce
Spark
Pig
Tez
DATA WORKFLOW MANAGEMENT
Oozie
MapReduceMapReduce
RETOUR D’EXPÉRIENCE 1
¤  Publigroupe
¤  Nettoyage des données : filtrage jointure,
dédoublonnage et dénormalisation
¤  1.9 milliards de print, 1.5 M clicks
49
¤  4 machines, 1 master + 3 data nodes
>  4 core / 8 threads, 32GoRAM
>  4 * 2 To JBOD
>  2 x 1Go réseau (1 patte interne, 1 patte externe)
¤  HDFS : 20 To
¤  Hébergeur : 420 CHF / mois
RETOURS D’EXPÉRIENCE 2
¤  Client Bancaire
¤  Calcul batch intensif en I/O
50
¤  10 machines virtuelles (2 + 8)
¤  Durée de calcul :
>  Avant : 23h (mainframe)
>  Après : 2h
EXEMPLE :
EXPLORATION
MODELISATION
PROBLÉMATIQUE ET RÉPONSE HADOOP
52
MLlib
Requêtage Prediction
Visualisation /
Modélisation
Classification ….
Machine LearningExploration
Extraction
CARTOGRAPHIE HADOOP
53
YARN : Data Operating System
DATA MANAGEMENT
DATA ACCESS
1 ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
°
°
N
HDFS
(Hadoop Distributed File System)
Flume Sqoop
Map
Reduce
Spark
MLlib
GraphX
Pig Hive
Tez Tez
DATA WORKFLOW MANAGEMENT
Oozie
MapReduce MapReduce
RETOUR D’EXPÉRIENCE
¤  Publigroupe
¤  Génération d’arbre de décision
54
¤  Hive : avg, min, max, etc.
¤  R : Analyse de données, sortie PDF
¤  Création d’un arbre de décision pour optimiser les
enchères sur les espaces publicitaires
ANALYSE DES STRATEGIES D’UNE CAMPAGNE
List of (strategies & exchange)
Low click-rate
High click-rate
Limited incertitude interval
Big incertitude interval
55
LE PRIX A-T-IL UN INFLUENCE SUR LE TAUX DE CLIC ?
56
●
●
●
●
● ●
●
● ●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ● ●
● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
● ● ● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ● ● ● ● ●
●
● ● ●
●
●
●
● ● ●
●
●
●
●
●
●
● ●
●
●
● ●
●
● ●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
● ● ●
●
0.0
0.2
0.4
0.6
0 10 20 30 40 50
rank
click_rate/avg_total_spend*1000
campaign_goal_type
●
●
●
●
cpa
cpc
reach
spend
Click rate per $ − all campaign
AUTRE CAS D’USAGE
¤  Banque d’investissement
¤  Contrôle de prises de positions hors normes
¤  ~ 100 millions de lignes à vérifier par jour
57
¤  Spark MLlib :
>  Calculs : régressions linéaire, statistiques
>  Classification : hors normes ou pas ?
¤  Réduire le nombre de contrôles non automatisés à 10 000
lignes par jours en première étape
EVENT PROCESSING
STREAMING
ENJEUX
Distributed
Storage
Extreme
Transaction
Processing
Parallel
Programming
Event
Stream
Processing
YOU ARE
HERE
59
Events
intensive
Transaction
intensive
Storage
intensive
Computation
intensive
ENJEUX
60
2 MODÈLES
61
Event
Microbatch
Streaming
CARTOGRAPHIE HADOOP
62
YARN : Data Operating System
DATA MANAGEMENT
DATA ACCESS
1 ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
°
°
N
HDFS
(Hadoop Distributed File System)
Flume Sqoop
Map
Reduce
Spark
Streaming
Pig Hive Storm
Tez SliderTez
DATA WORKFLOW MANAGEMENT
Oozie
MapReduceMapReduce Slider
RETOUR D’EXPÉRIENCE
¤  Transporteur
¤  Evénements de suivi de colis
¤  20 millions de messages par jour (180 Go / jour)
¤  200 à 4000 événements par seconde
63
¤  Génération d’alertes
¤  Statistiques « fil de l’eau »
¤  Et bien d’autres (analyses, simulations, etc.)
¤  Spark Streaming (entre autre) :
>  Calcul de l’état du colis
>  Détection d’anomalies / alertes
>  Filtrage / routage / enrichissement
>  Génération d’événements manquants
RETOUR D’EXPÉRIENCE
64
Evénements
Lectures
API
Traitements
Synchrone
HTTP/2.0 SOA IoT
API
Traitements
Synchrones
Tampon API
Traitements
Synchrone
Traitements
Asynchrones
Ecritures
Messages d’écritures
Mobile
HTML
Service WebHistorique
Streaming
Alertes
ENJEUX
Distributed
Storage
Extreme
Transaction
Processing
Parallel
Programming
Event
Stream
Processing
YOU
ARE
HERE
65
Events
intensive
Transaction
intensive
Storage
intensive
Computation
intensive
CARTOGRAPHIE HADOOP
66
YARN : Data Operating System
DATA MANAGEMENT
DATA ACCESS
1 ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
°
°
N
HDFS
(Hadoop Distributed File System)
Flume Sqoop
Map
Reduce
Spark
Pig Hive Storm
Tez SliderTez
HBase
DATA WORKFLOW MANAGEMENT
Oozie
MapReduce SliderMapReduce
AGENDA
67
HADOOP, qu'est-ce que c’est ?
Quelques cas d’usage
Industrialisation de la plateforme
INDUSTRIALISATION ?
Stockage élastique distribué
Support de plusieurs workloads
Partage des ressources
Gouvernance des données
Interopérabilité logicielle
Exploitabilité
Accumulation de grandes profondeurs
d’historique, données structurées, semi-
structurées et non structurées
TP, batch, interactif, analytique/machine
learning, temps réel (fast data)
Sécurité des données, gestion des
ressources de stockage et de calcul,
reporting analytique de l’usage
Catalogage des données,
traçabilité de la production des
datasets, gestion du cycle de vie
Support de SQL, connecteurs
xDBC, support natif par les
produits tiers (ETL, etc.)
Monitoring, outillage de la
configuration et des déploiements,
production de KPI, haute
disponibilité, PRA
68
LA MATURITÉ D’HADOOP (1/2)
Stockage élastique distribué
Support de plusieurs workloads
Partage des ressources
Gouvernance des données
Interopérabilité logicielle
Exploitabilité
Hadoop début 2013 …
69
LA MATURITÉ D’HADOOP (2/2)
Stockage élastique distribué
Support de plusieurs workloads
Partage des ressources
Gouvernance des données
Interopérabilité logicielle
Exploitabilité
… et Hadoop en 2016
Améliorations sur tous les fronts !
70
GOUVERNANCE : DES DONNÉES MIEUX MAÎTRISÉES
¤  Traçabilité de la production des datasets
¤  Gestion du cycle de vie des données
¤  Réplication de datasets sur site distant
71
CONNECTIVITÉ ET OUTILLAGE
72
SÉCURITÉ
Authentification forte des utilisateurs et services,
Intégration annuaire d’entreprise
Habilitations étendues (ACL) sur HDFS,
modèle de sécurité RBAC
Extension partielle des ACL aux
couches SQL et NoSQL
Chiffrement des flux
73
Sécuriser une plateforme Hadoop nécessite une forte expertise
Partage des ressources
EXPLOITATION
¤  La plupart des services sont aujourd’hui en haute disponibilité, et les rolling
upgrades permettent de migrer des gros clusters sans interruption
¤  La nécessité de reposer sur des standards d’exploitation (API REST, socles de
déploiement) a été bien comprise et la richesse des API augmente
¤  Les API de récupération de métriques, essentielles pour le reporting d’usage,
la refacturation ou le capacity planning apparaissent
74
EXPLOITATION
75
Collaboration
Déploiement Continu
Infrastructure As Code
VISION 360 DE LA PLATEFORME AVEC AMBARI / CLOUDERA
MANAGER
76
CARTOGRAPHIE HADOOP
77
YARN : Data Operating System
DATA MANAGEMENT
DATA ACCESS
1 ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
°
°
N
HDFS
(Hadoop Distributed File System)
Flume Sqoop
Map
Reduce
Spark
Pig Hive Storm
Tez SliderTez
HBase
DATA WORKFLOW MANAGEMENT
Oozie
MapReduce SliderMapReduce
Ambari
Cloudera
Manager
Falcon
Navigator
Sentry
Ranger
TAKE AWAY
ENJEUX
Distributed
Storage
Extreme
Transaction
Processing
Parallel
Programming
Event
Stream
Processing
Events
intensive
Transaction
intensive
Storage
intensive
Computation
intensive
YOU
ARE
HERE
79
YARN : Data Operating System
DATA MANAGEMENT
DATA ACCESS
1 ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
° ° ° ° ° ° ° ° ° °
°
°
N
HDFS
(Hadoop Distributed File System)
Flume Sqoop
Map
Reduce
Spark
Pig Hive Storm
Tez SliderTez
HBase
DATA WORKFLOW MANAGEMENT
Oozie
Ambari
Cloudera
Manager
Falcon
Navigator
Sentry
Ranger
MapReduce SliderMapReduce
UNE ARCHITECTURE ÉVOLUTIVE
80
Outils
Exécution
Stockage
API
API
EN SYNTHÈSE…
81
L’écosystème Hadoop a
rapidement évolué pour proposer
aujourd’hui une solution mature
Hadoop propose une solution
industrialisée : intégration au SI,
sécurité, gouvernance, déploiement,
etc.
Hadoop est prêt à répondre à vos
besoins. C’est une composante
inévitable de votre SI !
2016 is the Year of Big Data 
@OCTO Switzerland
2 autres à venir en 2016
14.06 - Kafka
Fondamentaux d’Hadoop
27&28.06
Big Data Romandie
Free Download
bit.ly/1KJVsD1 82
83

Afterwork hadoop