SlideShare a Scribd company logo
1 of 37
Download to read offline
Alexis Seigneurin
@aseigneurin @ippontech
1 / 37
Spark
Traitement large volumes de données
Traitement distribué (commodity hardware)
Ecrit en Scala, binding Java
2 / 37
Histoire
2009 : AMPLab de l'Université de Berkeley
Juin 2013 : "Top-level project" de la fondation
Apache
Mai 2014 : version 1.0.0
Actuellement : version 1.1.0
3 / 37
Usecases
Analyse de logs
Traitement de fichiers texte
Analytics
Recherche distribuée (Google, avant)
Détection de fraude
Recommendation (articles, produits...)
4 / 37
ProximitéavecHadoop
Mêmes use cases
Même modèle de
développement : MapReduce
Intégration dans l'écosystème
5 / 37
Plussimplequ'Hadoop
API plus simple à prendre en main
Modèle MapReduce "relâché"
Spark Shell : traitement interactif
6 / 37
Plusrapidequ'Hadoop
Spark officially sets a new record in large-scale
sorting (5 novembre 2014)
Tri de 100 To de données
Hadoop MR : 72 minutes avec 2100 noeuds
(50400 cores)
Spark : 23 minutes avec 206 noeuds (6592
cores)
7 / 37
EcosystèmeSpark
Spark
Spark Shell
Spark Streaming
Spark SQL
MLlib
GraphX
8 / 37
Intégration
Yarn, Zookeeper, Mesos
HDFS
Cassandra
Elasticsearch
MongoDB
9 / 37
Fonctionnement deSpark
10 / 37
RDD
Resilient Distributed Dataset
Abstraction, collection traitée en parallèle
Tolérant à la panne
Manipulation de tuples :
Clé - Valeur
Tuples indépendants les uns des autres
11 / 37
Sources:
Fichier sur HDFS
Fichier local
Collection en mémoire
S3
Base NoSQL
...
Ou une implémentation custom de InputFormat
12 / 37
Transformations
Manipule un RDD, retourne un autre RDD
Lazy !
Exemples :
map() : une valeur → une valeur
mapToPair() : une valeur → un tuple
filter() : filtre les valeurs/tuples
groupByKey() : regroupe la valeurs par clés
reduceByKey() : aggrège les valeurs par clés
join(), cogroup()... : jointure entre deux RDD
13 / 37
Actionsfinales
Ne retournent pas un RDD
Exemples :
count() : compte les valeurs/tuples
saveAsHadoopFile() : sauve les résultats au
format Hadoop
foreach() : exécute une fonction sur chaque
valeur/tuple
collect() : récupère les valeurs dans une liste
(List< T >)
14 / 37
Exemple
15 / 37
Word count
Découpage des fichiers par fragments de 128
Mo (framework)
Découpage des fragments par lignes
(framework)
Découpage des lignes en mots (map)
Comptage des mots (reduce)
Sur chaque noeud
Puis sur un noeud pour le résultat final
16 / 37
Shakespeare, Hamlet, acteIII, scène1
17 / 37
Spark - Exemple
sc.textFile("some/text/files/*")
.flatMap(line->Arrays.asList(line.split("W")))
.mapToPair(word->newTuple2<String,Integer>(word,1))
.reduceByKey((x,y)->x+y)
.collect();
18 / 37
Démo
Spark Shell
19 / 37
Démo deSpark Shell
$spark-shell
>varlines=sc.textFile(".../data/arbresalignementparis2010.csv")
>lines.count()
>vartrees=lines.filter(s=>!s.startsWith("geom"))
>vartreesSplit=trees.map(line=>line.split(";"))
>varheights=treesSplit.map(fields=>fields(3).toFloat)
>heights=heights.filter(h=>h>0)
>heights.sum()/heights.count()
20 / 37
Spark en Cluster
21 / 37
Topologie
Un master / des workers
(+ un master en standby)
Communication bidirectionnelle
On soumet une application
22 / 37
Spark en Cluster
Plusieurs options
YARN
Mesos
Standalone
Workers démarrés individuellement
Workers démarrés par le master
23 / 37
Stockage& traitements
MapReduce
Spark (API)
Traitement parallèle
Tolérant à la panne
Stockage
HDFS, base NoSQL...
Stockage distribué
Tolérant à la panne
24 / 37
Colocation données& traitement
Traiter la donnée là où elle se trouve
Eviter les network I/Os
25 / 37
Colocation données& traitement
26 / 37
Démo
Spark en Cluster
27 / 37
Démo
$$SPARK_HOME/sbin/start-master.sh
$$SPARK_HOME/bin/spark-class
org.apache.spark.deploy.worker.Worker
spark://MBP-de-Alexis:7077
--cores2--memory2G
$mvncleanpackage
$$SPARK_HOME/bin/spark-submit
--masterspark://MBP-de-Alexis:7077
--classcom.seigneurin.spark.WikipediaMapReduceByKey
--deploy-modecluster
target/pres-spark-0.0.1-SNAPSHOT.jar
28 / 37
Spark Streaming
29 / 37
Micro-batches
Découpe un flux continu en batches
API identique
≠ Apache Storm
30 / 37
DStream
Discretized Streams
Séquence de RDDs
Initialisé avec une Duration
31 / 37
Window operations
Fenêtre glissante
Réutilise des données d'autres fenêtres
Initialisé avec window length et slide interval
32 / 37
Sources
Socket
Kafka
Flume
HDFS
MQ (ZeroMQ...)
Twitter
...
Ou une implémentation custom de Receiver
33 / 37
Démo
Spark Streaming
34 / 37
Démo deSpark Streaming
Consommation de Tweets #Android
Twitter4J
Détection de la langue du Tweet
Language Detection
Indexation dans ElasticSearch
Analyse dans Kibana 4
35 / 37
Démo
Lancer ElasticSearch
$curl-XDELETElocalhost:9200
$curl-XPUTlocalhost:9200/spark/_mapping/tweets'{
"tweets":{
"properties":{
"user":{"type":"string","index":"not_analyzed"},
"text":{"type":"string"},
"createdAt":{"type":"date","format":"date_time"},
"language":{"type":"string","index":"not_analyzed"}
}
}
}'
Lancer Kibana
http://localhost:5601
Lancer le traitement
36 / 37
@aseigneurin - @ippontech
aseigneurin.github.io - blog.ippon.fr
37 / 37

More Related Content

What's hot

Map reduce presentation
Map reduce presentationMap reduce presentation
Map reduce presentationateeq ateeq
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceLilia Sfaxi
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2Amal Abid
 
Spark SQL principes et fonctions
Spark SQL principes et fonctionsSpark SQL principes et fonctions
Spark SQL principes et fonctionsMICHRAFY MUSTAFA
 
Thinking Big - Big data: principes et architecture
Thinking Big - Big data: principes et architecture Thinking Big - Big data: principes et architecture
Thinking Big - Big data: principes et architecture Lilia Sfaxi
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1Amal Abid
 
Spark - An In-Memory Distributed Computing Engine.pptx
Spark - An In-Memory Distributed Computing Engine.pptxSpark - An In-Memory Distributed Computing Engine.pptx
Spark - An In-Memory Distributed Computing Engine.pptxAnass Nabil
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Hatim CHAHDI
 
Apache Spark Introduction
Apache Spark IntroductionApache Spark Introduction
Apache Spark Introductionsudhakara st
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : CassandraLilia Sfaxi
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystèmeKhanh Maudoux
 
Spark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsSpark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsMICHRAFY MUSTAFA
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQLLilia Sfaxi
 
MapReduce Example | MapReduce Programming | Hadoop MapReduce Tutorial | Edureka
MapReduce Example | MapReduce Programming | Hadoop MapReduce Tutorial | Edureka MapReduce Example | MapReduce Programming | Hadoop MapReduce Tutorial | Edureka
MapReduce Example | MapReduce Programming | Hadoop MapReduce Tutorial | Edureka Edureka!
 
Seminar Presentation Hadoop
Seminar Presentation HadoopSeminar Presentation Hadoop
Seminar Presentation HadoopVarun Narang
 
Hadoop File system (HDFS)
Hadoop File system (HDFS)Hadoop File system (HDFS)
Hadoop File system (HDFS)Prashant Gupta
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3Amal Abid
 
Chapitre1 introduction
Chapitre1 introductionChapitre1 introduction
Chapitre1 introductionMouna Torjmen
 

What's hot (20)

spark_intro_1208
spark_intro_1208spark_intro_1208
spark_intro_1208
 
Map reduce presentation
Map reduce presentationMap reduce presentation
Map reduce presentation
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 
Spark SQL principes et fonctions
Spark SQL principes et fonctionsSpark SQL principes et fonctions
Spark SQL principes et fonctions
 
Thinking Big - Big data: principes et architecture
Thinking Big - Big data: principes et architecture Thinking Big - Big data: principes et architecture
Thinking Big - Big data: principes et architecture
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
Spark - An In-Memory Distributed Computing Engine.pptx
Spark - An In-Memory Distributed Computing Engine.pptxSpark - An In-Memory Distributed Computing Engine.pptx
Spark - An In-Memory Distributed Computing Engine.pptx
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 
Apache Spark Introduction
Apache Spark IntroductionApache Spark Introduction
Apache Spark Introduction
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystème
 
Spark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsSpark RDD : Transformations & Actions
Spark RDD : Transformations & Actions
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 
MapReduce Example | MapReduce Programming | Hadoop MapReduce Tutorial | Edureka
MapReduce Example | MapReduce Programming | Hadoop MapReduce Tutorial | Edureka MapReduce Example | MapReduce Programming | Hadoop MapReduce Tutorial | Edureka
MapReduce Example | MapReduce Programming | Hadoop MapReduce Tutorial | Edureka
 
Seminar Presentation Hadoop
Seminar Presentation HadoopSeminar Presentation Hadoop
Seminar Presentation Hadoop
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Hadoop File system (HDFS)
Hadoop File system (HDFS)Hadoop File system (HDFS)
Hadoop File system (HDFS)
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3
 
Chapitre1 introduction
Chapitre1 introductionChapitre1 introduction
Chapitre1 introduction
 

Similar to Spark, ou comment traiter des données à la vitesse de l'éclair

Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in ParisTed Drake
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
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 DataArrow Group
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureMicrosoft
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoopPatrick Bury
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoopPatrick Bury
 
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 à HadoopBenoît de CHATEAUVIEUX
 
Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Khanh Maudoux
 
code4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABEScode4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABESABES
 
Affichage d'un document Office sous Android
Affichage d'un document Office sous AndroidAffichage d'un document Office sous Android
Affichage d'un document Office sous AndroidStéphane Liétard
 
Presentation des outils traitements distribues
Presentation des outils traitements distribuesPresentation des outils traitements distribues
Presentation des outils traitements distribuesLê Anh
 
Syllabus advanced big data with spark
Syllabus advanced big data with sparkSyllabus advanced big data with spark
Syllabus advanced big data with sparkDr Hajji Hicham
 
20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessingPierre-Marie Brunet
 
P8 03 presentation
P8 03 presentationP8 03 presentation
P8 03 presentationrajiasellami
 

Similar to Spark, ou comment traiter des données à la vitesse de l'éclair (20)

Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in Paris
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
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
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
Spark
SparkSpark
Spark
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoop
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoop
 
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
 
Introduction spark
Introduction sparkIntroduction spark
Introduction spark
 
Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Hadoop et son écosystème - v2
Hadoop et son écosystème - v2
 
code4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABEScode4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABES
 
Introduction Apche Spark
Introduction Apche SparkIntroduction Apche Spark
Introduction Apche Spark
 
L'avenir de LAMP
L'avenir de LAMPL'avenir de LAMP
L'avenir de LAMP
 
Affichage d'un document Office sous Android
Affichage d'un document Office sous AndroidAffichage d'un document Office sous Android
Affichage d'un document Office sous Android
 
Presentation des outils traitements distribues
Presentation des outils traitements distribuesPresentation des outils traitements distribues
Presentation des outils traitements distribues
 
Syllabus advanced big data with spark
Syllabus advanced big data with sparkSyllabus advanced big data with spark
Syllabus advanced big data with spark
 
20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing
 
P8 03 presentation
P8 03 presentationP8 03 presentation
P8 03 presentation
 

Spark, ou comment traiter des données à la vitesse de l'éclair