SlideShare a Scribd company logo
1 of 43
Download to read offline
Cassandra et Spark

pour gérer la musique On-line
16 Juin 2015 @ Paris
Hammed RAMDANI
Architecte SI 3.0 et BigData
mramdani@palo-it.com
+33 6 80 22 20 70
2
Appelez-moi Hammed ;-)
(Sidi Mo)Hammed Ramdani
@smramdani
mramdani@palo-it.com
•  Consultant chez
•  Architecte SI 3.0 et BigData
•  Trained Pig & Hive developer
•  Coach Agile
•  Innovation Games trained facilitator
•  Speaker
3
Dream BIG and make IT happen !
  PALO IT est un cabinet de conseil en stratégie d’innovation et
réalisation numérique. Notre approche :
  Insuffler un esprit de Start-up;
  Identifier les technologies et les usages créateurs de nouveaux business
models;
  Accélérer votre Go-To-Market par l’adoption d’une organisation Lean &
Agile.
Créée en 2009, PALO IT regroupe une communauté de 160
talents de plus de 20 nationalités, passionnés par l’Agilité et
l’Open Source.
  PALO IT est une société apprenante et audacieuse qui se
distingue par sa forte culture Projet. L’esprit entrepreneurial, le
fun, le partage de connaissances, le sens client et la simplicité
constituent ses valeurs centrales.
4
PALO IT en quelques chiffres
160
collaborateurs
40
grands comptes
+50%
croissance organique/an
5
bureaux
Cassandra et Spark

pour que vive la
musique On-line !



Un projet en cours …
6
…
Nos clients …
7
Notre vrai client
…
Client
Collecte des
droits musicaux
Redistribution
DSP
« Digital Service Providers »
Créateurs et
ayants droits
8
Données du On-line traitées
> 3000
déclarations
9
Données du On-line traitées
> 3000
déclarations
> 1milliard
de titres
10
Données du On-line traitées
> 3000
déclarations
> 1milliard
de titres
> 4milliard
de titres
> 150 milliard
de streamings
11
Pas seulement le On-line !
…
Client
Collecte des
droits musicaux
Redistribution
DSP
« Digital Service Providers »
Créateurs et
ayants droits
Média et supports
traditionnels
12
Règles des 95 / 5
Client
Collecte des
droits musicaux
Redistribution
On-line
Créateurs et
ayants droits
Non On-line
< 5% des droits
> 95% des
droits
< 5% des volumes
> 95% des
volumes
13
Marché en évolution
Client
Collecte des
droits musicaux
Redistribution
On-line
Créateurs et
ayants droits
Non On-line
< 5% des droits
> 95% des
droits
< 5% des volumes
> 95% des
volumes
14
Evolution du marché français
15
Téléchargement vs Streaming
16
System d’information actuel
Non On-line
Créateurs et
ayants droits
On-line
SI du Client
Analyse
et filtrage
Ident auto Calcul des
barèmes
tarifaires
Ident manu
Doc. des
ouvres
Calcul des
droits
Facturation
et suivi des
payements
Redistrib
des droits
17
System d’information actuel
Créateurs et
ayants droits
SI du Client
Analyse
et filtrage
Ident auto Calcul des
barèmes
tarifaires
Ident manu
Doc. des
ouvres
Calcul des
droits
Facturation
et suivi des
payements
Redistrib
des droits
Non On-line
On-line
18
System d’information actuel
Créateurs et
ayants droits
SI du Client
Analyse
et filtrage
Ident auto Calcul des
barèmes
tarifaires
Ident manu
Doc. des
ouvres
Calcul des
droits
Facturation
et suivi des
payements
Redistrib
des droits
Non On-line
On-line
19
System d’information actuel
Redistribution
Créateurs et
ayants droits
SI du Client
Analyse
et filtrage
Ident auto Calcul des
barèmes
tarifaires
Ident manu
Doc. des
ouvres
Calcul des
droits
Facturation
et suivi des
payements
Redistrib
des droits
IHM IHM IHM IHM IHM
Non On-line
On-line
20
Volumes et temps exponentiels …
21
Un bel avenir !
22
Solution
Créateurs et
ayants droits
SI du Client
Analyse
et filtrage
Ident auto Calcul des
barèmes
tarifaires
Ident manu
Doc. des
ouvres
Calcul des
droits
Facturation
et suivi des
payements
Redistrib
des droits
Non On-line
On-line
Vision 360° Dashboards
Search &
analytics
Process
mgmt
Nouv
services
Gisement BigData
Process Workflow en Streaming
23
BigData, Streaming et Cloud
Créateurs et
ayants droits
SI du Client
Analyse
et filtrage
Ident auto Calcul des
barèmes
tarifaires
Ident manu
Doc. des
ouvres
Calcul des
droits
Facturation
et suivi des
payements
Redistrib
des droits
Non On-line
On-line
Vision 360° Dashboards
Search &
analytics
Process
mgmt
Nouv
services
Gisement BigData
S1 S2 S3 S4 SX SY SZ
24
Web
Back-end
Architecture logique
SI du Client
On-line
BigData
Platform
Web
front-end
IHM Web
Import & export data flow management
Read services Write services
Security
& rôles
managements
Streaming & batch processing
Indexing & Search
Raw data
Repository
NoSQL DB
25
Web
Back-end
Choix techniques
SI du Client
On-line
BigData
Platform
Web
front-end
IHM Web
Import & export data flow management
Read services Write services
Security
& rôles
managements
Apache Spark
Elasticsearch
Avro
Sur HDFS
Apache Cassandra
26
•  Scalabilité linéaire
•  Haute dispos + Distribuée + Consistance « tunable » (CAP : 2,5/3 ;-)
•  Gestion de gros volumes (> 10To)
•  Faible latence en lecture et en écriture (~<10ms)
•  BD NoSQL mature avec des utilisateurs de référence (eBay, Apple, etc.)
•  Outillée pour les clusters de production (Rack + DC management, etc)
•  Modèle de données riche + langage CQL
•  Projet Open sources Apache
•  Support et formation assurés par DataStax
Le choix Cassandra
27
Limites à prendre en compte :
•  Pas de select … where (non clé) (opérateur <> =) (group by) (order by)
•  Pas de count(…)
•  Pas de jointures
•  Pas de contraintes d’intégrité
•  Pas de transactions : sauf if (not) exists
•  Pas de « Proc Stock »
•  Indexes secondaires à utiliser avec « grande » modération
Le choix Cassandra
28
Un PoC sinon rien
Web
Back-end
On-line
BigData
Platform
Web
front-end
IHM Web
Import & export data flow management
Read services
Streaming & batch processing
Indexing & SearchNoSQL DB
6 mois
de déclarations
2014
(85%)
29
Infrastructure du PoC
Hadoop Cluster
Cassandra
Node 3
Cassandra
Node 5
Cassandra
Node 4
Cassandra
Node 6
Hadoop
Spark
Node 1
ES
Node 1
ES
Node 2
Web App
+ Monitoring
Node 2
Frontend Applications & Monitoring
ES
Node 8
Elasticsearch Cluster
Cassandra
Node 9
Cassandra
Node 10
ES
Node 7
Hadoop
Spark
Node 2
1CPU-8Cores
32GB RAM
2 x 3TB HD
OVH Cloude Plateforme : 10 x Nodes
NoSQL DB
30
PoC Agile
31
Planning du PoC
2014	
   2015	
  
Sprints	
   November	
   December	
   	
  January	
  
W44	
   W45	
   W46	
   W47	
   W48	
   W49	
   W50	
   W51	
   W52	
   W1	
   W2	
   W3	
   W4	
   W5	
   W6	
   W7	
  
Sprint	
  #1	
  	
  	
   	
  	
  	
  
Sprint	
  #2	
   	
  	
   	
  	
   	
  	
  
Sprint	
  #3	
   	
  	
   	
  	
  
Sprint	
  #4	
   	
  	
   	
  	
   	
  	
   	
  	
   	
  	
  
Sprint	
  #5	
  
Sprint	
  #6	
  
32
PoC – Screenshots
33
PoC – Jeux de données
•  6 mois de déclarations (DSR) : Q1 & Q2 / 2014
0	
  
200	
  000	
  000	
  
400	
  000	
  000	
  
600	
  000	
  000	
  
800	
  000	
  000	
  
1	
  000	
  000	
  000	
  
1	
  200	
  000	
  000	
  
Q1	
   Q2	
   Total	
  
Spo4fy	
  
iTunes	
  
Youtube	
  
Nombre de Resources
par DSP
34
PoC – Modèle de données
NoSQL Data Model
Cassandra
DSP
DSR
Release
Resource
DSR
Release
Sale
Resource
Search & Analytics
Elasticsearch
Sale
DSR By
Status
Resource
By Status
Resource
Data
35
Datastax OpsCenter – Nodes view
36
Datastax OpsCenter - Dashboard
37
PoC – Mesures
•  Benchmark du temps de chargement Cassandra
0,00
1,00
2,00
3,00
4,00
5,00
6,00
7,00
8,00
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Loading forcast with a month* of DSR
13 nodes needed to load 1
month of DSR in 2 days
*1 month of DSR = 450 000 000 of resources
38
PoC – Mesures
•  Benchmark du temps de chargement Cassandra
Avec	
  disques	
  SATA	
  2	
  x	
  3To	
  en	
  RAID0	
  
Node	
  inserts	
  /	
  sec	
   156	
  
Cluster	
  size	
  (nodes)	
   3	
   4	
   5	
   6	
   7	
   8	
   9	
   10	
  
Cluster	
  resources	
  /	
  h	
   1	
  684	
  800	
   2	
  246	
  400	
   2	
  808	
  000	
   3	
  369	
  600	
   3	
  931	
  200	
   4	
  492	
  800	
   5	
  054	
  400	
   5	
  616	
  000	
  
Cluster	
  resources	
  /	
  day	
   40	
  435	
  200	
   53	
  913	
  600	
   67	
  392	
  000	
   80	
  870	
  400	
   94	
  348	
  800	
   107	
  827	
  200	
   121	
  305	
  600	
   134	
  784	
  000	
  
Cassandra	
  cluster	
  size	
   6	
  Nodes	
  (servers)	
  
Resources	
  /	
  h	
   3	
  369	
  600	
  res/h	
  
Resources	
  /	
  day	
   80	
  870	
  400	
  res/day	
  
Total	
  resources	
  in	
  2014	
  ~	
   3	
  000	
  Millions	
  
Resources	
  by	
  month	
  in	
  2014	
  ~	
   250	
  Millions	
  
Total	
  month	
  DSR	
  loading	
  Qme	
   3,09	
  Days	
  
Total	
  month	
  DSR	
  loading	
  Qme	
   74,19	
  h	
  
39
PoC concluant, mais…
Quelques enseignements :
•  A haut débit, les inserts de grands enregistrements « dé-normalisés » sont à proscrire
•  Les updates fréquents de grands enregistrements sont interdits !
•  Limitations fortes sur les IO disques (sur les machines utilisées)
•  Enlever le RAID1 ;-)
•  Le tuning VM est crucial (MAX_HEAP_SIZE, HEAP_NEWSIZE, etc) *
•  D’autres Params peuvent aider (CONCURRENT_READS, CONCURRENT_WRITES,
MEMTABLE_TOTAL_SPACE) *
•  Pénalisation des serveurs Cassandra lors des compactions
•  Les écritures en batch n’améliorent pas la situation, au contraire 8-(
•  Les écritures asynchrones, pas mieux !
•  Sur un système aux limites, contrôler le débit en amont !
•  Envisager les disques SSD
(*) Merci Duy Hai et Datastax
40
Et la suite
•  Test avec disques SSD très concluants
•  Re-modélisation :
•  Dé-normalisation à bon escient
•  Garder les tables petites
•  Séparation des données « statiques » des données « dynamiques »
•  Gestion de tables par « Status » avec bucketing si nécessaire
•  Encore plus d’intégration entre Spark et Cassandra :
•  Connecteur Cassandra Spark amélioré
•  Fonctions de partitionnement pour co-localisation les traitements
41
Mesures SATA vs SSD
•  Nouveaux benchmarks du temps de chargement Cassandra
Amélioration x ~50
Avec	
  disques	
  SATA	
  2	
  x	
  3To	
  en	
  RAID0	
  
Node	
  inserts	
  /	
  sec	
   156	
  
Cluster	
  size	
  (nodes)	
   3	
   4	
   5	
   6	
   7	
   8	
   9	
   10	
  
Cluster	
  resources	
  /	
  h	
   1	
  684	
  800	
   2	
  246	
  400	
   2	
  808	
  000	
   3	
  369	
  600	
   3	
  931	
  200	
   4	
  492	
  800	
   5	
  054	
  400	
   5	
  616	
  000	
  
Cluster	
  resources	
  /	
  day	
   40	
  435	
  200	
   53	
  913	
  600	
   67	
  392	
  000	
   80	
  870	
  400	
   94	
  348	
  800	
   107	
  827	
  200	
   121	
  305	
  600	
   134	
  784	
  000	
  
Cassandra	
  cluster	
  size	
   6	
  Nodes	
  (servers)	
  
Resources	
  /	
  h	
   3	
  369	
  600	
  res/h	
  
Resources	
  /	
  day	
   80	
  870	
  400	
  res/day	
  
Total	
  resources	
  in	
  2014	
  ~	
   3	
  000	
  Millions	
  
Resources	
  by	
  month	
  in	
  2014	
  ~	
   250	
  Millions	
  
Total	
  month	
  DSR	
  loading	
  Qme	
   3,09	
  Days	
  
Total	
  month	
  DSR	
  loading	
  Qme	
   74,19	
  h	
  
Avec	
  disques	
  SSD	
  4	
  x	
  800Go	
  (1	
  SSD	
  pour	
  les	
  CommitLogs	
  +	
  3	
  SSD	
  pour	
  les	
  SSTables)	
  
Node	
  inserts	
  /	
  sec	
   7	
  407	
   47	
  x	
  SATA	
  
Cluster	
  size	
  (nodes)	
   3	
   4	
   5	
   6	
   7	
   8	
   9	
   10	
  
Cluster	
  resources	
  /	
  h	
   80	
  000	
  000	
   106	
  666	
  667	
   133	
  333	
  333	
   160	
  000	
  000	
   186	
  666	
  667	
   213	
  333	
  333	
   240	
  000	
  000	
   266	
  666	
  667	
  
Cluster	
  resources	
  /	
  day	
   1	
  920	
  000	
  000	
   2	
  560	
  000	
  000	
   3	
  200	
  000	
  000	
   3	
  840	
  000	
  000	
   4	
  480	
  000	
  000	
   5	
  120	
  000	
  000	
   5	
  760	
  000	
  000	
   6	
  400	
  000	
  000	
  
Cassandra	
  cluster	
  size	
   6	
  Nodes	
  (servers)	
  
Resources	
  /	
  h	
   160	
  000	
  000	
  res/h	
  
Resources	
  /	
  day	
   3	
  840	
  000	
  000	
  res/day	
  
Total	
  resources	
  in	
  2014	
  ~	
   3	
  000	
  Millions	
  
Resources	
  by	
  month	
  in	
  2014	
  ~	
   250	
  Millions	
  
Total	
  month	
  DSR	
  loading	
  Qme	
   0,07	
  Days	
  
Total	
  month	
  DSR	
  loading	
  Qme	
   1,56	
  h	
  
Total	
  month	
  DSR	
  loading	
  Qme	
   93,75	
  min	
  
0	
  
100000000	
  
200000000	
  
300000000	
  
3	
   4	
   5	
   6	
   7	
   8	
   9	
   10	
  
SATA	
  disks	
  (Res/h)	
  
SSD	
  disks	
  (Res/h)	
  
42
Modèle de données cible …
43
Merci pour votre attention !

More Related Content

Viewers also liked

Analisisespectralenmatlab1
Analisisespectralenmatlab1Analisisespectralenmatlab1
Analisisespectralenmatlab1
Erick Alba
 
Présentation de l'habitat partagé
Présentation de l'habitat partagéPrésentation de l'habitat partagé
Présentation de l'habitat partagé
Webullition
 
100706 dies ist ein experiment
100706 dies ist ein experiment100706 dies ist ein experiment
100706 dies ist ein experiment
HSFIdstein
 
Evaluación de habilidades de lenguaje y comunicacion 6º año
Evaluación de habilidades de lenguaje y  comunicacion 6º añoEvaluación de habilidades de lenguaje y  comunicacion 6º año
Evaluación de habilidades de lenguaje y comunicacion 6º año
manueloyarzun
 
50 cuentos de jorge 2009
50 cuentos de jorge 200950 cuentos de jorge 2009
50 cuentos de jorge 2009
manueloyarzun
 
Cuentos 2008 de carla velasquez
Cuentos 2008 de carla velasquezCuentos 2008 de carla velasquez
Cuentos 2008 de carla velasquez
manueloyarzun
 
Anexo primera infancia
Anexo  primera infanciaAnexo  primera infancia
Anexo primera infancia
Felipe Arias
 

Viewers also liked (16)

Cassandra and Spark: Optimizing for Data Locality-(Russell Spitzer, DataStax)
Cassandra and Spark: Optimizing for Data Locality-(Russell Spitzer, DataStax)Cassandra and Spark: Optimizing for Data Locality-(Russell Spitzer, DataStax)
Cassandra and Spark: Optimizing for Data Locality-(Russell Spitzer, DataStax)
 
Gratis-Webinar Schreiben für das Internet - Eduvision Ausbildungen
Gratis-Webinar Schreiben für das Internet  - Eduvision AusbildungenGratis-Webinar Schreiben für das Internet  - Eduvision Ausbildungen
Gratis-Webinar Schreiben für das Internet - Eduvision Ausbildungen
 
Analisisespectralenmatlab1
Analisisespectralenmatlab1Analisisespectralenmatlab1
Analisisespectralenmatlab1
 
Presentación Jóvenes Productivos
Presentación Jóvenes ProductivosPresentación Jóvenes Productivos
Presentación Jóvenes Productivos
 
Pictocuento
PictocuentoPictocuento
Pictocuento
 
Informe censores
Informe censoresInforme censores
Informe censores
 
Présentation de l'habitat partagé
Présentation de l'habitat partagéPrésentation de l'habitat partagé
Présentation de l'habitat partagé
 
100706 dies ist ein experiment
100706 dies ist ein experiment100706 dies ist ein experiment
100706 dies ist ein experiment
 
Periodico nº 08
Periodico nº 08Periodico nº 08
Periodico nº 08
 
Produanálisis 4
Produanálisis 4Produanálisis 4
Produanálisis 4
 
Evaluación de habilidades de lenguaje y comunicacion 6º año
Evaluación de habilidades de lenguaje y  comunicacion 6º añoEvaluación de habilidades de lenguaje y  comunicacion 6º año
Evaluación de habilidades de lenguaje y comunicacion 6º año
 
Sanando a Los Enfermos
Sanando a Los EnfermosSanando a Los Enfermos
Sanando a Los Enfermos
 
Cuento 25
Cuento 25Cuento 25
Cuento 25
 
50 cuentos de jorge 2009
50 cuentos de jorge 200950 cuentos de jorge 2009
50 cuentos de jorge 2009
 
Cuentos 2008 de carla velasquez
Cuentos 2008 de carla velasquezCuentos 2008 de carla velasquez
Cuentos 2008 de carla velasquez
 
Anexo primera infancia
Anexo  primera infanciaAnexo  primera infancia
Anexo primera infancia
 

Similar to REX Cassandra et Spark au service de la musique en ligne (Français)

Oxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataOxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigData
Ludovic Piot
 

Similar to REX Cassandra et Spark au service de la musique en ligne (Français) (20)

Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
 
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEOCore Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
 
Big Data Paris 2015 - Cassandra chez Chronopost
Big Data Paris 2015 - Cassandra chez ChronopostBig Data Paris 2015 - Cassandra chez Chronopost
Big Data Paris 2015 - Cassandra chez Chronopost
 
Paris monitoring - 27012016 - Smart Monitoring chez Oxalide
Paris monitoring - 27012016 - Smart Monitoring chez OxalideParis monitoring - 27012016 - Smart Monitoring chez Oxalide
Paris monitoring - 27012016 - Smart Monitoring chez Oxalide
 
Oxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataOxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigData
 
Propostion un Iaas
Propostion un IaasPropostion un Iaas
Propostion un Iaas
 
Big Data : au delà du proof of concept et de l'expérimentation (Matinale busi...
Big Data : au delà du proof of concept et de l'expérimentation (Matinale busi...Big Data : au delà du proof of concept et de l'expérimentation (Matinale busi...
Big Data : au delà du proof of concept et de l'expérimentation (Matinale busi...
 
3 Microsoft Advanced Threat Analytics - Genève
3   Microsoft Advanced Threat Analytics - Genève3   Microsoft Advanced Threat Analytics - Genève
3 Microsoft Advanced Threat Analytics - Genève
 
Le chiffrement en 2019 - Lybero.net - Arnaud Laprévote
Le chiffrement en 2019 - Lybero.net - Arnaud LaprévoteLe chiffrement en 2019 - Lybero.net - Arnaud Laprévote
Le chiffrement en 2019 - Lybero.net - Arnaud Laprévote
 
Offrir de l'analytique en temps réel en un clic
Offrir de l'analytique en temps réel en un clicOffrir de l'analytique en temps réel en un clic
Offrir de l'analytique en temps réel en un clic
 
Volcamp 2023 - Compter les moutons à grande échelle
Volcamp 2023 - Compter les moutons à grande échelleVolcamp 2023 - Compter les moutons à grande échelle
Volcamp 2023 - Compter les moutons à grande échelle
 
Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?
 
Découvrez les nouvelles fonctionnalités de Talend 6
Découvrez les nouvelles fonctionnalités de Talend 6Découvrez les nouvelles fonctionnalités de Talend 6
Découvrez les nouvelles fonctionnalités de Talend 6
 
Azure Stream analytics / Event Hub
Azure Stream analytics / Event HubAzure Stream analytics / Event Hub
Azure Stream analytics / Event Hub
 
Amazon summit 2015
Amazon summit 2015Amazon summit 2015
Amazon summit 2015
 
INFORMATION BUILDERS - Comment integrer les big data a votre SI - Data foru...
INFORMATION BUILDERS -  Comment integrer les big data a votre SI -  Data foru...INFORMATION BUILDERS -  Comment integrer les big data a votre SI -  Data foru...
INFORMATION BUILDERS - Comment integrer les big data a votre SI - Data foru...
 
meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23
 
AWS Paris Summit 2014 - T3 - Du temps réel au data warehouse : capturez et an...
AWS Paris Summit 2014 - T3 - Du temps réel au data warehouse : capturez et an...AWS Paris Summit 2014 - T3 - Du temps réel au data warehouse : capturez et an...
AWS Paris Summit 2014 - T3 - Du temps réel au data warehouse : capturez et an...
 
BIG DATA - Cloud Computing
BIG DATA - Cloud ComputingBIG DATA - Cloud Computing
BIG DATA - Cloud Computing
 
Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?
Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?
Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?
 

More from DataStax Academy

Cassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsCassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart Labs
DataStax Academy
 
Cassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackCassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stack
DataStax Academy
 
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & PythonCassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
DataStax Academy
 
Standing Up Your First Cluster
Standing Up Your First ClusterStanding Up Your First Cluster
Standing Up Your First Cluster
DataStax Academy
 
Real Time Analytics with Dse
Real Time Analytics with DseReal Time Analytics with Dse
Real Time Analytics with Dse
DataStax Academy
 
Introduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache CassandraIntroduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache Cassandra
DataStax Academy
 
Enabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseEnabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax Enterprise
DataStax Academy
 
Advanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraAdvanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache Cassandra
DataStax Academy
 

More from DataStax Academy (20)

Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craftForrester CXNYC 2017 - Delivering great real-time cx is a true craft
Forrester CXNYC 2017 - Delivering great real-time cx is a true craft
 
Introduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph DatabaseIntroduction to DataStax Enterprise Graph Database
Introduction to DataStax Enterprise Graph Database
 
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache CassandraIntroduction to DataStax Enterprise Advanced Replication with Apache Cassandra
Introduction to DataStax Enterprise Advanced Replication with Apache Cassandra
 
Cassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart LabsCassandra on Docker @ Walmart Labs
Cassandra on Docker @ Walmart Labs
 
Cassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingCassandra 3.0 Data Modeling
Cassandra 3.0 Data Modeling
 
Cassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stackCassandra Adoption on Cisco UCS & Open stack
Cassandra Adoption on Cisco UCS & Open stack
 
Data Modeling for Apache Cassandra
Data Modeling for Apache CassandraData Modeling for Apache Cassandra
Data Modeling for Apache Cassandra
 
Coursera Cassandra Driver
Coursera Cassandra DriverCoursera Cassandra Driver
Coursera Cassandra Driver
 
Production Ready Cassandra
Production Ready CassandraProduction Ready Cassandra
Production Ready Cassandra
 
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & PythonCassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
Cassandra @ Netflix: Monitoring C* at Scale, Gossip and Tickler & Python
 
Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1Cassandra @ Sony: The good, the bad, and the ugly part 1
Cassandra @ Sony: The good, the bad, and the ugly part 1
 
Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2Cassandra @ Sony: The good, the bad, and the ugly part 2
Cassandra @ Sony: The good, the bad, and the ugly part 2
 
Standing Up Your First Cluster
Standing Up Your First ClusterStanding Up Your First Cluster
Standing Up Your First Cluster
 
Real Time Analytics with Dse
Real Time Analytics with DseReal Time Analytics with Dse
Real Time Analytics with Dse
 
Introduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache CassandraIntroduction to Data Modeling with Apache Cassandra
Introduction to Data Modeling with Apache Cassandra
 
Cassandra Core Concepts
Cassandra Core ConceptsCassandra Core Concepts
Cassandra Core Concepts
 
Enabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax EnterpriseEnabling Search in your Cassandra Application with DataStax Enterprise
Enabling Search in your Cassandra Application with DataStax Enterprise
 
Bad Habits Die Hard
Bad Habits Die Hard Bad Habits Die Hard
Bad Habits Die Hard
 
Advanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache CassandraAdvanced Data Modeling with Apache Cassandra
Advanced Data Modeling with Apache Cassandra
 
Advanced Cassandra
Advanced CassandraAdvanced Cassandra
Advanced Cassandra
 

REX Cassandra et Spark au service de la musique en ligne (Français)

  • 1. Cassandra et Spark
 pour gérer la musique On-line 16 Juin 2015 @ Paris Hammed RAMDANI Architecte SI 3.0 et BigData mramdani@palo-it.com +33 6 80 22 20 70
  • 2. 2 Appelez-moi Hammed ;-) (Sidi Mo)Hammed Ramdani @smramdani mramdani@palo-it.com •  Consultant chez •  Architecte SI 3.0 et BigData •  Trained Pig & Hive developer •  Coach Agile •  Innovation Games trained facilitator •  Speaker
  • 3. 3 Dream BIG and make IT happen !   PALO IT est un cabinet de conseil en stratégie d’innovation et réalisation numérique. Notre approche :   Insuffler un esprit de Start-up;   Identifier les technologies et les usages créateurs de nouveaux business models;   Accélérer votre Go-To-Market par l’adoption d’une organisation Lean & Agile. Créée en 2009, PALO IT regroupe une communauté de 160 talents de plus de 20 nationalités, passionnés par l’Agilité et l’Open Source.   PALO IT est une société apprenante et audacieuse qui se distingue par sa forte culture Projet. L’esprit entrepreneurial, le fun, le partage de connaissances, le sens client et la simplicité constituent ses valeurs centrales.
  • 4. 4 PALO IT en quelques chiffres 160 collaborateurs 40 grands comptes +50% croissance organique/an 5 bureaux
  • 5. Cassandra et Spark
 pour que vive la musique On-line !
 
 Un projet en cours …
  • 7. 7 Notre vrai client … Client Collecte des droits musicaux Redistribution DSP « Digital Service Providers » Créateurs et ayants droits
  • 8. 8 Données du On-line traitées > 3000 déclarations
  • 9. 9 Données du On-line traitées > 3000 déclarations > 1milliard de titres
  • 10. 10 Données du On-line traitées > 3000 déclarations > 1milliard de titres > 4milliard de titres > 150 milliard de streamings
  • 11. 11 Pas seulement le On-line ! … Client Collecte des droits musicaux Redistribution DSP « Digital Service Providers » Créateurs et ayants droits Média et supports traditionnels
  • 12. 12 Règles des 95 / 5 Client Collecte des droits musicaux Redistribution On-line Créateurs et ayants droits Non On-line < 5% des droits > 95% des droits < 5% des volumes > 95% des volumes
  • 13. 13 Marché en évolution Client Collecte des droits musicaux Redistribution On-line Créateurs et ayants droits Non On-line < 5% des droits > 95% des droits < 5% des volumes > 95% des volumes
  • 16. 16 System d’information actuel Non On-line Créateurs et ayants droits On-line SI du Client Analyse et filtrage Ident auto Calcul des barèmes tarifaires Ident manu Doc. des ouvres Calcul des droits Facturation et suivi des payements Redistrib des droits
  • 17. 17 System d’information actuel Créateurs et ayants droits SI du Client Analyse et filtrage Ident auto Calcul des barèmes tarifaires Ident manu Doc. des ouvres Calcul des droits Facturation et suivi des payements Redistrib des droits Non On-line On-line
  • 18. 18 System d’information actuel Créateurs et ayants droits SI du Client Analyse et filtrage Ident auto Calcul des barèmes tarifaires Ident manu Doc. des ouvres Calcul des droits Facturation et suivi des payements Redistrib des droits Non On-line On-line
  • 19. 19 System d’information actuel Redistribution Créateurs et ayants droits SI du Client Analyse et filtrage Ident auto Calcul des barèmes tarifaires Ident manu Doc. des ouvres Calcul des droits Facturation et suivi des payements Redistrib des droits IHM IHM IHM IHM IHM Non On-line On-line
  • 20. 20 Volumes et temps exponentiels …
  • 22. 22 Solution Créateurs et ayants droits SI du Client Analyse et filtrage Ident auto Calcul des barèmes tarifaires Ident manu Doc. des ouvres Calcul des droits Facturation et suivi des payements Redistrib des droits Non On-line On-line Vision 360° Dashboards Search & analytics Process mgmt Nouv services Gisement BigData Process Workflow en Streaming
  • 23. 23 BigData, Streaming et Cloud Créateurs et ayants droits SI du Client Analyse et filtrage Ident auto Calcul des barèmes tarifaires Ident manu Doc. des ouvres Calcul des droits Facturation et suivi des payements Redistrib des droits Non On-line On-line Vision 360° Dashboards Search & analytics Process mgmt Nouv services Gisement BigData S1 S2 S3 S4 SX SY SZ
  • 24. 24 Web Back-end Architecture logique SI du Client On-line BigData Platform Web front-end IHM Web Import & export data flow management Read services Write services Security & rôles managements Streaming & batch processing Indexing & Search Raw data Repository NoSQL DB
  • 25. 25 Web Back-end Choix techniques SI du Client On-line BigData Platform Web front-end IHM Web Import & export data flow management Read services Write services Security & rôles managements Apache Spark Elasticsearch Avro Sur HDFS Apache Cassandra
  • 26. 26 •  Scalabilité linéaire •  Haute dispos + Distribuée + Consistance « tunable » (CAP : 2,5/3 ;-) •  Gestion de gros volumes (> 10To) •  Faible latence en lecture et en écriture (~<10ms) •  BD NoSQL mature avec des utilisateurs de référence (eBay, Apple, etc.) •  Outillée pour les clusters de production (Rack + DC management, etc) •  Modèle de données riche + langage CQL •  Projet Open sources Apache •  Support et formation assurés par DataStax Le choix Cassandra
  • 27. 27 Limites à prendre en compte : •  Pas de select … where (non clé) (opérateur <> =) (group by) (order by) •  Pas de count(…) •  Pas de jointures •  Pas de contraintes d’intégrité •  Pas de transactions : sauf if (not) exists •  Pas de « Proc Stock » •  Indexes secondaires à utiliser avec « grande » modération Le choix Cassandra
  • 28. 28 Un PoC sinon rien Web Back-end On-line BigData Platform Web front-end IHM Web Import & export data flow management Read services Streaming & batch processing Indexing & SearchNoSQL DB 6 mois de déclarations 2014 (85%)
  • 29. 29 Infrastructure du PoC Hadoop Cluster Cassandra Node 3 Cassandra Node 5 Cassandra Node 4 Cassandra Node 6 Hadoop Spark Node 1 ES Node 1 ES Node 2 Web App + Monitoring Node 2 Frontend Applications & Monitoring ES Node 8 Elasticsearch Cluster Cassandra Node 9 Cassandra Node 10 ES Node 7 Hadoop Spark Node 2 1CPU-8Cores 32GB RAM 2 x 3TB HD OVH Cloude Plateforme : 10 x Nodes NoSQL DB
  • 31. 31 Planning du PoC 2014   2015   Sprints   November   December    January   W44   W45   W46   W47   W48   W49   W50   W51   W52   W1   W2   W3   W4   W5   W6   W7   Sprint  #1             Sprint  #2               Sprint  #3           Sprint  #4                       Sprint  #5   Sprint  #6  
  • 33. 33 PoC – Jeux de données •  6 mois de déclarations (DSR) : Q1 & Q2 / 2014 0   200  000  000   400  000  000   600  000  000   800  000  000   1  000  000  000   1  200  000  000   Q1   Q2   Total   Spo4fy   iTunes   Youtube   Nombre de Resources par DSP
  • 34. 34 PoC – Modèle de données NoSQL Data Model Cassandra DSP DSR Release Resource DSR Release Sale Resource Search & Analytics Elasticsearch Sale DSR By Status Resource By Status Resource Data
  • 37. 37 PoC – Mesures •  Benchmark du temps de chargement Cassandra 0,00 1,00 2,00 3,00 4,00 5,00 6,00 7,00 8,00 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Loading forcast with a month* of DSR 13 nodes needed to load 1 month of DSR in 2 days *1 month of DSR = 450 000 000 of resources
  • 38. 38 PoC – Mesures •  Benchmark du temps de chargement Cassandra Avec  disques  SATA  2  x  3To  en  RAID0   Node  inserts  /  sec   156   Cluster  size  (nodes)   3   4   5   6   7   8   9   10   Cluster  resources  /  h   1  684  800   2  246  400   2  808  000   3  369  600   3  931  200   4  492  800   5  054  400   5  616  000   Cluster  resources  /  day   40  435  200   53  913  600   67  392  000   80  870  400   94  348  800   107  827  200   121  305  600   134  784  000   Cassandra  cluster  size   6  Nodes  (servers)   Resources  /  h   3  369  600  res/h   Resources  /  day   80  870  400  res/day   Total  resources  in  2014  ~   3  000  Millions   Resources  by  month  in  2014  ~   250  Millions   Total  month  DSR  loading  Qme   3,09  Days   Total  month  DSR  loading  Qme   74,19  h  
  • 39. 39 PoC concluant, mais… Quelques enseignements : •  A haut débit, les inserts de grands enregistrements « dé-normalisés » sont à proscrire •  Les updates fréquents de grands enregistrements sont interdits ! •  Limitations fortes sur les IO disques (sur les machines utilisées) •  Enlever le RAID1 ;-) •  Le tuning VM est crucial (MAX_HEAP_SIZE, HEAP_NEWSIZE, etc) * •  D’autres Params peuvent aider (CONCURRENT_READS, CONCURRENT_WRITES, MEMTABLE_TOTAL_SPACE) * •  Pénalisation des serveurs Cassandra lors des compactions •  Les écritures en batch n’améliorent pas la situation, au contraire 8-( •  Les écritures asynchrones, pas mieux ! •  Sur un système aux limites, contrôler le débit en amont ! •  Envisager les disques SSD (*) Merci Duy Hai et Datastax
  • 40. 40 Et la suite •  Test avec disques SSD très concluants •  Re-modélisation : •  Dé-normalisation à bon escient •  Garder les tables petites •  Séparation des données « statiques » des données « dynamiques » •  Gestion de tables par « Status » avec bucketing si nécessaire •  Encore plus d’intégration entre Spark et Cassandra : •  Connecteur Cassandra Spark amélioré •  Fonctions de partitionnement pour co-localisation les traitements
  • 41. 41 Mesures SATA vs SSD •  Nouveaux benchmarks du temps de chargement Cassandra Amélioration x ~50 Avec  disques  SATA  2  x  3To  en  RAID0   Node  inserts  /  sec   156   Cluster  size  (nodes)   3   4   5   6   7   8   9   10   Cluster  resources  /  h   1  684  800   2  246  400   2  808  000   3  369  600   3  931  200   4  492  800   5  054  400   5  616  000   Cluster  resources  /  day   40  435  200   53  913  600   67  392  000   80  870  400   94  348  800   107  827  200   121  305  600   134  784  000   Cassandra  cluster  size   6  Nodes  (servers)   Resources  /  h   3  369  600  res/h   Resources  /  day   80  870  400  res/day   Total  resources  in  2014  ~   3  000  Millions   Resources  by  month  in  2014  ~   250  Millions   Total  month  DSR  loading  Qme   3,09  Days   Total  month  DSR  loading  Qme   74,19  h   Avec  disques  SSD  4  x  800Go  (1  SSD  pour  les  CommitLogs  +  3  SSD  pour  les  SSTables)   Node  inserts  /  sec   7  407   47  x  SATA   Cluster  size  (nodes)   3   4   5   6   7   8   9   10   Cluster  resources  /  h   80  000  000   106  666  667   133  333  333   160  000  000   186  666  667   213  333  333   240  000  000   266  666  667   Cluster  resources  /  day   1  920  000  000   2  560  000  000   3  200  000  000   3  840  000  000   4  480  000  000   5  120  000  000   5  760  000  000   6  400  000  000   Cassandra  cluster  size   6  Nodes  (servers)   Resources  /  h   160  000  000  res/h   Resources  /  day   3  840  000  000  res/day   Total  resources  in  2014  ~   3  000  Millions   Resources  by  month  in  2014  ~   250  Millions   Total  month  DSR  loading  Qme   0,07  Days   Total  month  DSR  loading  Qme   1,56  h   Total  month  DSR  loading  Qme   93,75  min   0   100000000   200000000   300000000   3   4   5   6   7   8   9   10   SATA  disks  (Res/h)   SSD  disks  (Res/h)  
  • 43. 43 Merci pour votre attention !