SlideShare une entreprise Scribd logo
1  sur  63
#DevoxxFR
Cassandra / Spark
Lan Party
Gautier Dhordain @gdhordain
Amira Lakhal @miralak
Thomas Recloux @thomasrecloux
Jérémy Sevellec @jsevellec
1
(Pour l’instant, ne touchez à rien)
#DevoxxFR
Ne touchez vraiment à rien :-)
(tout sera en ethernet)
‘pas de wifi’
2
#DevoxxFR
Qui est-ce?
3
Gautier Dhordain (@gdhordain)
Freelance - Ch’ti JUG volunteer
Amira Lakhal (@miralak)
Valtech Technology - Duchess Leader
Thomas Recloux (@thomasrecloux)
Freelance - Ch’ti JUG co-leader
Jérémy Sevellec @jsevellec
Freelance - Ch’ti JUG co-leader
#DevoxxFR
Si vous avez
une question / un problème :
N’ hésitez pas à demander à un
T-Shirt rouge
4
#DevoxxFR
Merci pour le prêt
de matériels / salle
5
#DevoxxFR
Ce qu’on va faire
6
Créer un cluster Cassandra /
Spark avec vos machines
#DevoxxFR
Ce qu’on va faire
7
Découverte par la pratique
#DevoxxFR
Ce qu’on va faire
8
FUN
#DevoxxFR
Ce qu’on va faire
9
Battre un record du monde!
Devoxx France 2012 :
36 noeuds
#DevoxxFR
Sondage
10
Qui a déjà joué avec
- Cassandra ?
- Spark ?
- Cassandra et Spark ?
- Scala ?
#DevoxxFR
AGENDA
11
- Setup Réseau
- un peu de théorie Cassandra
- Setup Cassandra
- Jouer avec Cassandra
- un peu de théorie Spark
- Setup Spark
- Jouer avec Cassandra et Spark
#DevoxxFR
Respectez la conf demandée
12
#DevoxxFR
Setup Réseau
13
#DevoxxFR
Essayons d’éviter ça
14
#DevoxxFR
Schéma réseau
15
WORLD
LILLE
10.1.1.X
SAN FRANCISCO
10.2.1.X
SINGAPOUR
10.3.1.X
Biloute
10.1.1.1
Roger
10.1.1.2
…
Steve
10.2.1.1
Bill
10.2.1.2
…
Hung
10.3.1.1
Tuan
10.3.1.2
…
#DevoxxFR
Merci de couper votre WIFI
16
#DevoxxFR
Regroupez-vous par datacenter /
switch
Répartissons « la charge »
17
#DevoxxFR
Attributions des IPs
18
Bob
10.1.1.
1
Roger
10.1.1.
2
…
10.1.1.
3
#DevoxxFR
Configuration réseau
19
IP : votre IP (celle du post-it)
Masque de sous réseau : 255.0.0.0
pas de proxy
pas de routeur/gateway/passerelle
test ping :
10.1.1.0, 10.1.1.1, 10.2.1.1, 10.3.1.1
#DevoxxFR
Théorie Cassandra
20
#DevoxxFR 21
#DevoxxFR
C’est quoi Cassandra
22
« The Apache Cassandra database is
the right choice when you need
scalability and high availability without
compromising performance »
#DevoxxFR
Pourquoi utiliser Cassandra?
23
Scale UP/DOWN
Données qui ne tiennent pas sur
un serveur
Grosse charge d’écriture
#DevoxxFR
Principales fonctionnalitées
24
Nativement distribué
datacenter aware
Master less
Partionnement des données
Réplication des données
Niveau de consistance configurable
#DevoxxFR
Ring Cassandra
2525
#DevoxxFR
Comment est stockée une table sur le
cluster?
26
Chaque table a une PRIMARY KEY
PRIMARY KEY = PARTITION KEY
Une fonction associe une valeur de clef primaire à un Hash /
Token
Chaque noeud du cluster prend en charge un « token range »
Pour chaque « keyspace » (= schéma) , on défini un
« REPLICATION FACTOR ». Chaque donnée est répliquée
selon ce replication factor.
#DevoxxFR 27
name gender age
jérémy M 25
amira F 26
gautier M 42
thomas M 27
…. …. ….
name gender age
jérémy M 25
… … ….
name gender age
amira F 26
… … …
name gender age
gautier M 42
thomas M 27
…. …. ….
#DevoxxFR
PAS DE JOIN
28
#DevoxxFR
Consitency Level
29
Cassandra vous laisse maitre du niveau de consistence
Principaux niveaux :
• ONE
• LOCAL_ONE
• QUORUM
• LOCAL_QUORUM
Quorum = (replication factor / 2 ) + 1
#DevoxxFR
Setup Cassandra
30
#DevoxxFR
NE PAS DEMARRER
CASSANDRA AVANT LE GO
d’un T-Shirt rouge
31
#DevoxxFR 32
KEEP
CALM
THERE’S AN APP
FOR THAT
#DevoxxFR
Utiliser le configurateur
http://10.1.1.0:8080/
33
#DevoxxFR
NE PAS DEMARRER
CASSANDRA AVANT LE GO
d’un T-Shirt rouge
34
#DevoxxFR
Setup Cassandra
35
- récupérer le binaire Cassandra
- décompresser l’archive
- configurer :
cassandra.yaml
logs
#DevoxxFR
Cassandra.yaml
36
seeds : Liste des noeuds à contacter initialement
listen_address : communication inter noeud
rpc_address : communication avec client
RackInferringSnitch : 10.<datacenter>.<rack>.<node>
auto_bootstrap: false : joindre le cluster sans échanger de données
#DevoxxFR
Démarrage progressif du cluster
Cassandra
37
#DevoxxFR
Création du Keyspace et de la
table
38
#DevoxxFR
nodetool
cqlsh
39
#DevoxxFR
Théorie Spark
40
#DevoxxFR
C’est quoi Spark
41
« Apache Spark™ is a fast and
general engine for large-scale
data processing. »
#DevoxxFR
Pourquoi utiliser Spark?
42
Pour faire du calcul distribué sur un
gros volume de données
parce que Hadoop c’est trop compliqué
parce que c’est hype de faire du Spark
#DevoxxFR
Principales fonctionnalitées
43
programmation fonctionnelle
RDD
DAG
en mémoire (RAM)
#DevoxxFR
RDD
44
RDD = Resilient Distributed Dataset
Spark construit un DAG à partir des opérations sur le RDD et
chaque opération n’est effectuée que si nécessaire
Une opération peut être effectuée deux fois
API Scala / Java / Python
#DevoxxFR
DAG
45
#DevoxxFR
RDD
46
Transformations locales :
• map
• filter
• flatMap
• …
Transformations distribuées :
• groupByKey
• reduceByKey
• …
#DevoxxFR
RDD
47
Actions :
• collect
• count
• first
• take(n)
• foreach
• ….
#DevoxxFR
Spark Standalone Cluster
48
Worker
Worker
Worker
Worker
Worker
Master
Driver
Executor
Executor
ExecutorExecutor
Executor
#DevoxxFR
Pourquoi utiliser Cassandra et Spark?
49
Spark est le couteau
suisse
permettant de gérer vos
données
avec Cassandra
#DevoxxFR
Spark Cassandra Connector
50
#DevoxxFR
Cassandra Spark Connector
51
Un vrai connecteur
Data locality
Scala / Java
#DevoxxFR
Cassandra + Spark
52
C*
52
C*
C*
C*
C*
Spark
Worker
Spark
Worker
Spark
Worker
Spark
Worker
Spark
Worker
#DevoxxFR
Nouvelles opérations RDD
53
cassandraTable(keyspace, table)
repartitionByCassandraReplica(keyspace, table)
joinWithCassandraTable(keyspace, table)
#DevoxxFR
Stop à la théorie
54
#DevoxxFR
Setup Spark
55
#DevoxxFR 56
KEEP
CALM
THERE’S AN APP
FOR THAT
#DevoxxFR
Utiliser le configurateur
http://10.1.1.0:8080/spark
57
#DevoxxFR
Configuration de Spark
58
#DevoxxFR
Démarrage du cluster Spark
59
#DevoxxFR
Spark Shell
60
#DevoxxFR
Music Dataset
61
albums
title (PK)
performer_name
year
country
quality
status
performers
performer_name (PK)
country
gender
type
born
died
styles
#DevoxxFR
Récap
62
créé un réseau avec 3 data centers
créé un cluster Cassandra sur 3 datacenters
inséré/lu des données dans cassandra
faire tomber un datacenter
créé un cluster Spark (global)
executer un job Spark sur le cluster
battu un record du monde? : non
#DevoxxFR
Questions?
63

Contenu connexe

Tendances

Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieur
Fredy Fadel
 
Présentation de ECMAScript 6
Présentation de ECMAScript 6Présentation de ECMAScript 6
Présentation de ECMAScript 6
Julien CROUZET
 

Tendances (20)

Initiation r
Initiation rInitiation r
Initiation r
 
Devoxx 2018 Après Java 8, Java 9 et 10
Devoxx 2018 Après Java 8, Java 9 et 10Devoxx 2018 Après Java 8, Java 9 et 10
Devoxx 2018 Après Java 8, Java 9 et 10
 
Programmation Fonctionnelle
Programmation FonctionnelleProgrammation Fonctionnelle
Programmation Fonctionnelle
 
L'API Collector dans tous ses états
L'API Collector dans tous ses étatsL'API Collector dans tous ses états
L'API Collector dans tous ses états
 
Programmation fonctionnelle
Programmation fonctionnelleProgrammation fonctionnelle
Programmation fonctionnelle
 
"Input/Ouput, 16 ans après" à Devoxx France 2012
"Input/Ouput, 16 ans après" à Devoxx France 2012"Input/Ouput, 16 ans après" à Devoxx France 2012
"Input/Ouput, 16 ans après" à Devoxx France 2012
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieur
 
Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10
 
Nouveautés Java 9-10-11
Nouveautés Java 9-10-11Nouveautés Java 9-10-11
Nouveautés Java 9-10-11
 
Présentation de ECMAScript 6
Présentation de ECMAScript 6Présentation de ECMAScript 6
Présentation de ECMAScript 6
 
Change mind about JS
Change mind about JSChange mind about JS
Change mind about JS
 
Monitoring d'applications/environnements PHP: APM et Pinba
Monitoring d'applications/environnements PHP: APM et PinbaMonitoring d'applications/environnements PHP: APM et Pinba
Monitoring d'applications/environnements PHP: APM et Pinba
 
Introduction à scala
Introduction à scalaIntroduction à scala
Introduction à scala
 
Les Streams sont parmi nous
Les Streams sont parmi nousLes Streams sont parmi nous
Les Streams sont parmi nous
 
Java 8-streams-collectors-patterns
Java 8-streams-collectors-patternsJava 8-streams-collectors-patterns
Java 8-streams-collectors-patterns
 
Javascript les générateurs (generators)
Javascript   les générateurs (generators)Javascript   les générateurs (generators)
Javascript les générateurs (generators)
 
Techday Arrow Group: Java 8
Techday Arrow Group: Java 8Techday Arrow Group: Java 8
Techday Arrow Group: Java 8
 
50 nouvelles choses que l'on peut faire en Java 8
50 nouvelles choses que l'on peut faire en Java 850 nouvelles choses que l'on peut faire en Java 8
50 nouvelles choses que l'on peut faire en Java 8
 
JDK 8, lambdas, streams, collectors - Bretagne Tour
JDK 8, lambdas, streams, collectors - Bretagne TourJDK 8, lambdas, streams, collectors - Bretagne Tour
JDK 8, lambdas, streams, collectors - Bretagne Tour
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 

En vedette

Researching postgresql
Researching postgresqlResearching postgresql
Researching postgresql
Fernando Ike
 
PostgreSQL Performance Tuning
PostgreSQL Performance TuningPostgreSQL Performance Tuning
PostgreSQL Performance Tuning
elliando dias
 

En vedette (9)

5 Tips to Simplify the Management of Your Postgres Database
5 Tips to Simplify the Management of Your Postgres Database5 Tips to Simplify the Management of Your Postgres Database
5 Tips to Simplify the Management of Your Postgres Database
 
Researching postgresql
Researching postgresqlResearching postgresql
Researching postgresql
 
Postgresql Performance
Postgresql PerformancePostgresql Performance
Postgresql Performance
 
PGDay India 2016
PGDay India 2016PGDay India 2016
PGDay India 2016
 
PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...
PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...
PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...
 
Four Levels of High Availability in Cloud Foundry (Cloud Foundry Summit 2014)
Four Levels of High Availability in Cloud Foundry (Cloud Foundry Summit 2014)Four Levels of High Availability in Cloud Foundry (Cloud Foundry Summit 2014)
Four Levels of High Availability in Cloud Foundry (Cloud Foundry Summit 2014)
 
24/7 Monitoring and Alerting of PostgreSQL
24/7 Monitoring and Alerting of PostgreSQL24/7 Monitoring and Alerting of PostgreSQL
24/7 Monitoring and Alerting of PostgreSQL
 
PostgreSQL Performance Tuning
PostgreSQL Performance TuningPostgreSQL Performance Tuning
PostgreSQL Performance Tuning
 
Pandora FMS: PostgreSQL Plugin
Pandora FMS: PostgreSQL PluginPandora FMS: PostgreSQL Plugin
Pandora FMS: PostgreSQL Plugin
 

Similaire à Cassandra Spark Lan Party at Devoxx France

CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdfCHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
YounesOuladSayad1
 

Similaire à Cassandra Spark Lan Party at Devoxx France (20)

Kubernetes University - Cap sur l'orchestration
Kubernetes University - Cap sur l'orchestrationKubernetes University - Cap sur l'orchestration
Kubernetes University - Cap sur l'orchestration
 
Kubernetes University, Cap sur l’orchestration Docker
Kubernetes University, Cap sur l’orchestration DockerKubernetes University, Cap sur l’orchestration Docker
Kubernetes University, Cap sur l’orchestration Docker
 
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
 
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
 
DataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysDataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft Techdays
 
Apache Zeppelin @DevoxxFR 2016
Apache Zeppelin @DevoxxFR 2016Apache Zeppelin @DevoxxFR 2016
Apache Zeppelin @DevoxxFR 2016
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
Networxx (intro et fin)
Networxx (intro et fin)Networxx (intro et fin)
Networxx (intro et fin)
 
NoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler SofteamNoSQL panorama - Jean Seiler Softeam
NoSQL panorama - Jean Seiler Softeam
 
Algorithme distribués pour big data saison 2 @DevoxxFR 2016
Algorithme distribués pour big data saison 2 @DevoxxFR 2016Algorithme distribués pour big data saison 2 @DevoxxFR 2016
Algorithme distribués pour big data saison 2 @DevoxxFR 2016
 
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...
 
Kit de survie pour l'IoT façon DIY
Kit de survie pour l'IoT façon DIYKit de survie pour l'IoT façon DIY
Kit de survie pour l'IoT façon DIY
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
Techday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big Data
 
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdfCHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
 
Poitou charentes JUG - Elasticsearch
Poitou charentes JUG - ElasticsearchPoitou charentes JUG - Elasticsearch
Poitou charentes JUG - Elasticsearch
 
Chapitre 3 spark
Chapitre 3 sparkChapitre 3 spark
Chapitre 3 spark
 
Webinar Degetel DataStax
Webinar Degetel DataStaxWebinar Degetel DataStax
Webinar Degetel DataStax
 

Cassandra Spark Lan Party at Devoxx France

Notes de l'éditeur

  1. Abstraction d’une collection distribuée Tolérant aux pannes Opérations « Lazy »