SlideShare une entreprise Scribd logo
1  sur  34
Présentation Société
Mars 2013 @ Paris
Stanislas BOCQUET
CEO
+33(0)1 43 12 89 42
sbocquet@palo-it.com
SPARK STREAMING, LES DONNÉES QUI
VOUS PARLENT EN TEMPS RÉEL
30 SEPTEMBRE 2015 @Paris
Nadhem LAMTI
Architecte Technique chez PALO IT
Saâd-Eddine MALTI
Expert BDD chez Voyages SNCF
&
2
Au programme
Streaming et Architecture Big Data
Introduction to Spark Streaming : Word Count
Intégration de Flume à Spark Streaming
Use case « logs applicatifs »
Architecture générale : driver / workers / receivers
Monitoring
Fail over : reliable / unreliable sources, checkpoint, recover
Tuning et performance
Streaming et architecture
BigData
4
RAPPELS
Juin 2015
HDFS : système de fichiers distribués
MAPREDUCE : traitement distribué
PIG HIVE
SCRIPTING
SEQUENTIEL
SQL
LIKE
JAVA
Plumbing
• In Memory
• RDD
• Scala/Java/Python
5
ARCHITECTURE BIG DATA
Plus familièrement : architecture LAMBDA
STOCKENT : en vue d’un REPORTING mensuel
par ex
Et TRAITENT en temps réel la donnée : en vue
d’un MONITORING par ex
Savent gérer la donnée à la fois comme :
UN STOCK
UN FLUX
Cas d’utilisation :
Systèmes de recommandations
Statistiques en temps réel : ex taux d’erreur
Pub en ligne : nombre de clics/transformations
par campagne
6
ARCHITECTURE BIG DATA
Batch LAYER
Stocker l’ensemble de données
Itération pouvant prendre plusieurs heures
Speed LAYER : « temps réel »
Traite que les données récentes et compense
la latence élevée de la couche Batch
Calculées de manière incrémentale en
s’appuyant sur des systèmes de traitement de
flux et des bases de données en
lectures/écritures aléatoires.
Serving LAYER:
Charger et Exposer les vues des couches
batch et temps réel
7
SPARK STREAMING
88
SPARK STREAMING
Etend l’API de Spark Core
Scalable, haut débit, tolérance au panne
Traitement au fil de l’eau des données
temps réelles
99
SPARK STREAMING
Plusieurs sources possibles
Processing utilisant des algorithmes
complexes mais des APIs simples :
map, reduce, join, window, …
Les données traitées peuvent être
poussées vers des systèmes de
stockage, Dashboards, …
Haut niveau d’abstraction : Discritized
Stream (DStream)  Séquence de
RDDs
1010
WORD COUNT
1111
WORD COUNT
12
Intégration avec Flume
1313
DATASOURCE FLUME
Système distribué, fiable, à haute disponibilité
Solution de collecte et d’agrégation de gros
volumes données depuis plusieurs sources
Pusher vers un entrepôt de données centralisé
(HDFS, ELS …)
Agents
Source, Channel, Sink
1414
DATASOURCE FLUME
Configuration Type
1515
DATASOURCE FLUME
Spark Streaming + Flume Integration Guide
Approche 1 : Push-based approach :
Spark Streaming, essentiellement, initialise un “receiver” agissant comme un
agent Avro pour Flume, dans lequel ce dernier peut pousser ses données
Configuration de Flume :
 Linking : Package spark-streaming-flume_2.10
Programming :
1616
DATASOURCE FLUME
Spark Streaming + Flume Integration Guide
Approche 2 : Pull-based approach :
Flume pousse les données dans le sink, et ces dernières restent en mémoire
tampon.
Spark Streaming utilize un reliable Flume receiver de manière transactionnelle
pour récupérer les données du sink. Une transaction est considérée OK
seulement après acquittement et replication de la donnée par Spark Streaming
Configuration Flume :
 Sink Jars : spark-streaming-flume-sink_2.10, scala-library
 Config file
 Linking : Package spark-streaming-flume_2.10
Programming :
17
DEMO : USE CASE LOG
APPLICATIF
1818
DEMO : USE CASE LOG APPLICATIF
Operations :
Transformations : lazy
Stateless : map, reduce, filter, join, combineByKey
Stateful : utilise les données et les résultat du batch précédent. Nécessite un checkpoint.
» window / silde :
exemple : reduceByKeyAndWindow
» Statut à travers le temps : updateByState
Actions : output des operations. Sert pour évaluer le contenu d’un Dstream et démarrer un contexte
exemple : myDStream.saveAsTextFiles(“mydir”,”.txt”)
foreachRDD() : generic output operation
1919
DEMO : USE CASE LOG APPLICATIF
Déploiement
Inclure les dépendances Spark et celles des sources
Générer un package avec Maven Assembly
Exécution
./bin/spark-submit -- class …
-- master …
-- jars [jar_1,jar_2,…,jar_n]
-- conf p1=v1
….
<app-jar>
[app-arguments]
Configuration
SparkConf.set(“p1”,”v1”)
Dynamique :
-- conf p1=v1
-- conf p2=v2
Config Chargée depuis conf/spark-defaults.conf :
Les propriétés peuvent être consultées depuis la webUI(http://<driver>:4040) # TAB “Environment”
ARCHITECTURE
21
ARCHITECTURE
Cluster Manager : Standalone,
MESOS, YARN et local(
dev/test/debug)
WorkerNode : Receives +
Processes
Driver : programme principale
contenant « sparkContext »
22
MONITORING
webUI : http://<driver>:4040
Streaming  tab
Running Receivers :
Active
Number of records received
Receiver error
Batches :
Processing Time
Times
Queing delays
Environment tab
…
TOLERANCE AUX PANNES
24
TOLERANCE AUX PANNES
3 étapes pour traiter les données
Recevoir les données
Traiter/transformer les données
Pusher les données vers l’éxterieur
25
TOLERANCE AUX PANNES
Réception des données :
Reliable : acquittement après avoir s’assurer que la donnée reçue est
répliquée : cas de « PollingFlume »
Unreliable : à partir de « Spark 1.2 », « WriteAheadLog »
(spark.streaming.receiver.writeAheadLog.enabled -> true)
Attention aux performances : utiliser plus qu’un Receiver en // et désactiver la
réplication
26
TOLERANCE AUX PANNES
Traiter/Transformer les données :
CHECKPOINT : Sauvegarder le statut périodiquement dans un système de
fichier fiable :
Data : RDD intermédiaires sur les opération de transformation Statefull
Metadata : Recover from Driver :
 Utiliser “getOrCreate” : recréer sparkStreamingContext depuis checkpoint
Data dans le répertoire checkpoint
 -- supervise : redémarrage en cas d’échec du Driver (seulement on
standalone mode)
 -- deploy-mode cluster : lancer sur un cluster distant
27
TOLERANCE AUX PANNES
Push des données vers l’éxterieur:
Mise à jour transactionnelle
Doit avoir un identifiant de transaction
Du moment ou ça concerne un système externe, c’est de la
responsabilité du système d’assurer la cohérence des données
28
TOLERANCE AUX PANNES
Mode Normal
29
TOLERANCE AUX PANNES
Mode « Recover »
Tunning et performance
31
Tunning et performance
Important : Le temps totale d’exécution d’un batch (scheduling delay + processing time) < batchInterval
Suivi via Spark UI Monitoring
Data Receiving :
Setter le bon « BatchInterval » : tester la limite en jouant sur le débit
Augmenter le nombre de Receivers :
 Attention : un « Receiver » = un « Worker » ou un « Core »
 Merge des Dstream de chaque receiver
Alternative au multiple Dstream : « inputStream.repartition () » distribue les données reçues sur des machines du
« Cluster » avant « processing »
« spark.streaming.backpressure.enabled » : gestion dynamique de la conf « spark.streaming.receiver.maxRate »
32
Tunning et performance
Data Processing :
Niveau du parallélisme
 Spark.core.max - nbr consommateurs
 Ajouter la conf « spark.default.parallelism » selon le type du cluster Manager
Réduire le nombre de partitions pour réduire le temps de Processing :
 Chaque block de données généré par le « Receiver » produit une partition
 « spark.streaming.blockInterval » : les données reçu se transforment en un block de données
 Partitions = « consumers » * « bactchInterval » / « blockInterval »
 « spark.streaming.blockInterval » nbr Partitions mais « batchInterval » mod « blockInterval » = 0
 Recommandé par Spark : nb Partition = 2x-3x nombre de « Cores » disponibles
 « spark.streaming.blockInterval » = « consumers » * « bactchInterval » / 2 ou 3 * « nb Cores »
Eviter les log de parcours des « Dstream » logs mode verbeux et silencieux
Kryo pour une sérialisation plus efficace : « spark.serializer org.apache.spark.serializer.KryoSerializer »
33
Tunning et performance
Setting the right batch interval : >=500 ms
Traite la donnée dès sa réception
Memory tuning and GC behavior :
Taille de la Window
 Mémoire requise de la taille de donnée dans chaque “executor” Set spark.default.parallelism
Large pause causée par JVM GC non désirable :
 Utiliser plus d’éxécuteurs avec une taille mémoire plus petite
CMS GC : diminuer les pauses
 In Driver : --driver-java-options
 In Executor : spark.executor.extraJavaOptions
Contrôler l’éviction des données si pas besoin
 Peut se faire explicitement pour les vieilles données au delà de “spark.cleaner.ttl” (peut réduire la
pression de l’activité GC)
Présentation Société
Mars 2013 @ Paris
Stanislas BOCQUET
CEO
+33(0)1 43 12 89 42
sbocquet@palo-it.com
MERCI DE VOTRE
ATTENTION !

Contenu connexe

Tendances

Spark SQL principes et fonctions
Spark SQL principes et fonctionsSpark SQL principes et fonctions
Spark SQL principes et fonctionsMICHRAFY MUSTAFA
 
Paris stormusergroup intrudocution
Paris stormusergroup intrudocutionParis stormusergroup intrudocution
Paris stormusergroup intrudocutionParis_Storm_UG
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkAmal Abid
 
Spark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsSpark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsMICHRAFY MUSTAFA
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Alexis Seigneurin
 
Cours Big Data Chap6
Cours Big Data Chap6Cours Big Data Chap6
Cours Big Data Chap6Amal Abid
 
Annexe Big Data
Annexe Big DataAnnexe Big Data
Annexe Big DataAmal Abid
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5Amal Abid
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3Amal Abid
 
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015Modern Data Stack France
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduceAmal Abid
 
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
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introductionfredcons
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreMICHRAFY MUSTAFA
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : CassandraLilia Sfaxi
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2Amal Abid
 

Tendances (20)

Spark SQL principes et fonctions
Spark SQL principes et fonctionsSpark SQL principes et fonctions
Spark SQL principes et fonctions
 
Paris stormusergroup intrudocution
Paris stormusergroup intrudocutionParis stormusergroup intrudocution
Paris stormusergroup intrudocution
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
Spark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsSpark RDD : Transformations & Actions
Spark RDD : Transformations & Actions
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)
 
Cours Big Data Chap6
Cours Big Data Chap6Cours Big Data Chap6
Cours Big Data Chap6
 
Annexe Big Data
Annexe Big DataAnnexe Big Data
Annexe Big Data
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Spark dataframe
Spark dataframeSpark dataframe
Spark dataframe
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3
 
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
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
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introduction
 
HADOOP + R
HADOOP + RHADOOP + R
HADOOP + R
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvre
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 

En vedette

Splunk for Security Workshop
Splunk for Security WorkshopSplunk for Security Workshop
Splunk for Security WorkshopSplunk
 
Make Streaming Analytics work for you: The Devil is in the Details
Make Streaming Analytics work for you: The Devil is in the DetailsMake Streaming Analytics work for you: The Devil is in the Details
Make Streaming Analytics work for you: The Devil is in the DetailsDataWorks Summit/Hadoop Summit
 
Using Artificial Intelligence to Create a Learning Model for Training
Using Artificial Intelligence to Create a Learning Model for TrainingUsing Artificial Intelligence to Create a Learning Model for Training
Using Artificial Intelligence to Create a Learning Model for TrainingRankMiner Predictive Analytics
 
L'Approche Lean Start-up
L'Approche Lean Start-upL'Approche Lean Start-up
L'Approche Lean Start-upDigital Minded
 
Cas d’usage du Big Data pour la relation et l’expérience client
Cas d’usage du Big Data pour la relation et l’expérience clientCas d’usage du Big Data pour la relation et l’expérience client
Cas d’usage du Big Data pour la relation et l’expérience clientJean-Michel Franco
 
Impact de l'intelligence artificielle sur le marketing
Impact de l'intelligence artificielle sur le marketingImpact de l'intelligence artificielle sur le marketing
Impact de l'intelligence artificielle sur le marketingRomain Bouilloud
 
Splunk for Machine Learning and Analytics
Splunk for Machine Learning and AnalyticsSplunk for Machine Learning and Analytics
Splunk for Machine Learning and AnalyticsSplunk
 
Apache SPARK ML : principes, concepts et mise en œuvre
Apache SPARK  ML : principes, concepts et  mise en œuvre Apache SPARK  ML : principes, concepts et  mise en œuvre
Apache SPARK ML : principes, concepts et mise en œuvre MICHRAFY MUSTAFA
 
Présentation sur splunk
Présentation sur splunkPrésentation sur splunk
Présentation sur splunkNajib Ihsine
 
Intelligence artificielle
Intelligence artificielleIntelligence artificielle
Intelligence artificielleMed Zaibi
 
Splunk for Machine Learning and Analytics
Splunk for Machine Learning and AnalyticsSplunk for Machine Learning and Analytics
Splunk for Machine Learning and AnalyticsSplunk
 
Présentation intelligence artificielle et domaines d'applications - #DigitalT...
Présentation intelligence artificielle et domaines d'applications - #DigitalT...Présentation intelligence artificielle et domaines d'applications - #DigitalT...
Présentation intelligence artificielle et domaines d'applications - #DigitalT...Digital Thursday
 
Vers un monde digital plus intelligent
Vers un monde digital plus intelligentVers un monde digital plus intelligent
Vers un monde digital plus intelligentFrançois DUCROT
 
Machine Learning + Analytics in Splunk
Machine Learning + Analytics in SplunkMachine Learning + Analytics in Splunk
Machine Learning + Analytics in SplunkSplunk
 
Getting Started with Splunk Enterprise
Getting Started with Splunk EnterpriseGetting Started with Splunk Enterprise
Getting Started with Splunk EnterpriseSplunk
 
Hortonworks Data In Motion Series Part 4
Hortonworks Data In Motion Series Part 4Hortonworks Data In Motion Series Part 4
Hortonworks Data In Motion Series Part 4Hortonworks
 
Real-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFiReal-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFiManish Gupta
 

En vedette (20)

Splunk for Security Workshop
Splunk for Security WorkshopSplunk for Security Workshop
Splunk for Security Workshop
 
Make Streaming Analytics work for you: The Devil is in the Details
Make Streaming Analytics work for you: The Devil is in the DetailsMake Streaming Analytics work for you: The Devil is in the Details
Make Streaming Analytics work for you: The Devil is in the Details
 
Oliver Kempkens Presentation on IWMC 2015
Oliver Kempkens Presentation on IWMC 2015Oliver Kempkens Presentation on IWMC 2015
Oliver Kempkens Presentation on IWMC 2015
 
Using Artificial Intelligence to Create a Learning Model for Training
Using Artificial Intelligence to Create a Learning Model for TrainingUsing Artificial Intelligence to Create a Learning Model for Training
Using Artificial Intelligence to Create a Learning Model for Training
 
L'Approche Lean Start-up
L'Approche Lean Start-upL'Approche Lean Start-up
L'Approche Lean Start-up
 
Cas d’usage du Big Data pour la relation et l’expérience client
Cas d’usage du Big Data pour la relation et l’expérience clientCas d’usage du Big Data pour la relation et l’expérience client
Cas d’usage du Big Data pour la relation et l’expérience client
 
The Elephant in the Clouds
The Elephant in the CloudsThe Elephant in the Clouds
The Elephant in the Clouds
 
Impact de l'intelligence artificielle sur le marketing
Impact de l'intelligence artificielle sur le marketingImpact de l'intelligence artificielle sur le marketing
Impact de l'intelligence artificielle sur le marketing
 
Splunk for Machine Learning and Analytics
Splunk for Machine Learning and AnalyticsSplunk for Machine Learning and Analytics
Splunk for Machine Learning and Analytics
 
Apache SPARK ML : principes, concepts et mise en œuvre
Apache SPARK  ML : principes, concepts et  mise en œuvre Apache SPARK  ML : principes, concepts et  mise en œuvre
Apache SPARK ML : principes, concepts et mise en œuvre
 
Présentation sur splunk
Présentation sur splunkPrésentation sur splunk
Présentation sur splunk
 
Intelligence artificielle
Intelligence artificielleIntelligence artificielle
Intelligence artificielle
 
Splunk for Machine Learning and Analytics
Splunk for Machine Learning and AnalyticsSplunk for Machine Learning and Analytics
Splunk for Machine Learning and Analytics
 
Présentation intelligence artificielle et domaines d'applications - #DigitalT...
Présentation intelligence artificielle et domaines d'applications - #DigitalT...Présentation intelligence artificielle et domaines d'applications - #DigitalT...
Présentation intelligence artificielle et domaines d'applications - #DigitalT...
 
Vers un monde digital plus intelligent
Vers un monde digital plus intelligentVers un monde digital plus intelligent
Vers un monde digital plus intelligent
 
Splunk
SplunkSplunk
Splunk
 
Machine Learning + Analytics in Splunk
Machine Learning + Analytics in SplunkMachine Learning + Analytics in Splunk
Machine Learning + Analytics in Splunk
 
Getting Started with Splunk Enterprise
Getting Started with Splunk EnterpriseGetting Started with Splunk Enterprise
Getting Started with Splunk Enterprise
 
Hortonworks Data In Motion Series Part 4
Hortonworks Data In Motion Series Part 4Hortonworks Data In Motion Series Part 4
Hortonworks Data In Motion Series Part 4
 
Real-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFiReal-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFi
 

Similaire à Spark Streaming

Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Bruno Bonnin
 
Datastax Cassandra + Spark Streaming
Datastax Cassandra + Spark StreamingDatastax Cassandra + Spark Streaming
Datastax Cassandra + Spark StreamingVictor Coustenoble
 
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èveaOS Community
 
Gestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzerGestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzerMohamet Lamine DIOP
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesXavier MARIN
 
Architecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KArchitecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KJulien Anguenot
 
System Center 2012 Configuration Manager R2 : Quoi de neuf ?
System Center 2012 Configuration Manager R2 : Quoi de neuf ?System Center 2012 Configuration Manager R2 : Quoi de neuf ?
System Center 2012 Configuration Manager R2 : Quoi de neuf ?Microsoft Technet France
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Alexandre Touret
 
Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]ANEO
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Alexandre Touret
 
Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Ca...
Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Ca...Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Ca...
Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Ca...Julien Anguenot
 
[Café Techno] Les nouveautés de TSM 7.1.3 - Septembre 2015
[Café Techno]  Les nouveautés de TSM 7.1.3 - Septembre 2015[Café Techno]  Les nouveautés de TSM 7.1.3 - Septembre 2015
[Café Techno] Les nouveautés de TSM 7.1.3 - Septembre 2015Groupe D.FI
 
[Café techno] Spectrum Project - Affronter et gérer la masse de données hétér...
[Café techno] Spectrum Project - Affronter et gérer la masse de données hétér...[Café techno] Spectrum Project - Affronter et gérer la masse de données hétér...
[Café techno] Spectrum Project - Affronter et gérer la masse de données hétér...Groupe D.FI
 
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...#OSSPARIS19 - Stream processing : de la base de données classique au streamin...
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...Paris Open Source Summit
 
Le Cloud IaaS & PaaS, OpenStack réseau et sécurité
Le Cloud IaaS & PaaS, OpenStack réseau et sécuritéLe Cloud IaaS & PaaS, OpenStack réseau et sécurité
Le Cloud IaaS & PaaS, OpenStack réseau et sécuritéNoureddine BOUYAHIAOUI
 
[SINS] Présentation de Nagios
[SINS] Présentation de Nagios[SINS] Présentation de Nagios
[SINS] Présentation de Nagiosjeyg
 
Meetup kafka 21 Novembre 2017
Meetup kafka 21 Novembre 2017Meetup kafka 21 Novembre 2017
Meetup kafka 21 Novembre 2017Saïd Bouras
 

Similaire à Spark Streaming (20)

Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
 
Datastax Cassandra + Spark Streaming
Datastax Cassandra + Spark StreamingDatastax Cassandra + Spark Streaming
Datastax Cassandra + Spark Streaming
 
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
 
Gestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzerGestion des LOGS savec syslog+loganalyzer
Gestion des LOGS savec syslog+loganalyzer
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
 
Architecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KArchitecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.K
 
System Center 2012 Configuration Manager R2 : Quoi de neuf ?
System Center 2012 Configuration Manager R2 : Quoi de neuf ?System Center 2012 Configuration Manager R2 : Quoi de neuf ?
System Center 2012 Configuration Manager R2 : Quoi de neuf ?
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
 
Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
Tech daysRetour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
 
Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Ca...
Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Ca...Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Ca...
Traitement temps réel de flux réseaux IPFIX/Netflow avec PySpark, Kafka et Ca...
 
[Café Techno] Les nouveautés de TSM 7.1.3 - Septembre 2015
[Café Techno]  Les nouveautés de TSM 7.1.3 - Septembre 2015[Café Techno]  Les nouveautés de TSM 7.1.3 - Septembre 2015
[Café Techno] Les nouveautés de TSM 7.1.3 - Septembre 2015
 
[Café techno] Spectrum Project - Affronter et gérer la masse de données hétér...
[Café techno] Spectrum Project - Affronter et gérer la masse de données hétér...[Café techno] Spectrum Project - Affronter et gérer la masse de données hétér...
[Café techno] Spectrum Project - Affronter et gérer la masse de données hétér...
 
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...#OSSPARIS19 - Stream processing : de la base de données classique au streamin...
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...
 
Le Cloud IaaS & PaaS, OpenStack réseau et sécurité
Le Cloud IaaS & PaaS, OpenStack réseau et sécuritéLe Cloud IaaS & PaaS, OpenStack réseau et sécurité
Le Cloud IaaS & PaaS, OpenStack réseau et sécurité
 
Parinux 2009
Parinux 2009Parinux 2009
Parinux 2009
 
[SINS] Présentation de Nagios
[SINS] Présentation de Nagios[SINS] Présentation de Nagios
[SINS] Présentation de Nagios
 
Paris RailsCamp 2009
Paris RailsCamp 2009Paris RailsCamp 2009
Paris RailsCamp 2009
 
Meetup kafka 21 Novembre 2017
Meetup kafka 21 Novembre 2017Meetup kafka 21 Novembre 2017
Meetup kafka 21 Novembre 2017
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 

Plus de PALO IT

The Agile Transformation Hell - PALO IT BarCamp
The Agile Transformation Hell - PALO IT BarCampThe Agile Transformation Hell - PALO IT BarCamp
The Agile Transformation Hell - PALO IT BarCampPALO IT
 
Design & Develop Disruptive Software
Design & Develop Disruptive SoftwareDesign & Develop Disruptive Software
Design & Develop Disruptive SoftwarePALO IT
 
Growth Mindset & Psychological Safety - High Performing Teams in Software Dev...
Growth Mindset & Psychological Safety - High Performing Teams in Software Dev...Growth Mindset & Psychological Safety - High Performing Teams in Software Dev...
Growth Mindset & Psychological Safety - High Performing Teams in Software Dev...PALO IT
 
BigText, compréhension et inférence avancées sur les textes
BigText, compréhension et inférence avancées sur les textesBigText, compréhension et inférence avancées sur les textes
BigText, compréhension et inférence avancées sur les textesPALO IT
 
Explorez l’Employee eXperience grâce au Design Thinking
Explorez l’Employee eXperience grâce au Design ThinkingExplorez l’Employee eXperience grâce au Design Thinking
Explorez l’Employee eXperience grâce au Design ThinkingPALO IT
 
Self-Organisation & Transparency: Delegation Poker
Self-Organisation & Transparency: Delegation PokerSelf-Organisation & Transparency: Delegation Poker
Self-Organisation & Transparency: Delegation PokerPALO IT
 
Framework de Digitalisation par les Organisations Exponentielles
Framework de Digitalisation par les Organisations ExponentiellesFramework de Digitalisation par les Organisations Exponentielles
Framework de Digitalisation par les Organisations ExponentiellesPALO IT
 
Project Managers, our World is Changing!
Project Managers, our World is Changing!Project Managers, our World is Changing!
Project Managers, our World is Changing!PALO IT
 
The Future of User Experience
The Future of User ExperienceThe Future of User Experience
The Future of User ExperiencePALO IT
 
Developers are from Mars, Designers are from Venus
Developers are from Mars, Designers are from VenusDevelopers are from Mars, Designers are from Venus
Developers are from Mars, Designers are from VenusPALO IT
 
Self-Organization in Agile & Digital Transformation
Self-Organization in Agile & Digital Transformation Self-Organization in Agile & Digital Transformation
Self-Organization in Agile & Digital Transformation PALO IT
 
Blockchain présenté aux Développeurs
Blockchain présenté aux Développeurs Blockchain présenté aux Développeurs
Blockchain présenté aux Développeurs PALO IT
 
Pourquoi est-ce si difficile de concevoir une API ?
Pourquoi est-ce si difficile de concevoir une API ?Pourquoi est-ce si difficile de concevoir une API ?
Pourquoi est-ce si difficile de concevoir une API ?PALO IT
 
Emerging Innovation: an exploratory journey into Design Thinking and why it m...
Emerging Innovation: an exploratory journey into Design Thinking and why it m...Emerging Innovation: an exploratory journey into Design Thinking and why it m...
Emerging Innovation: an exploratory journey into Design Thinking and why it m...PALO IT
 
Données animées
Données animéesDonnées animées
Données animéesPALO IT
 
Et pourquoi pas JEE ?
Et pourquoi pas JEE ?Et pourquoi pas JEE ?
Et pourquoi pas JEE ?PALO IT
 
Big Data ou comment retrouver une aiguille dans une botte de foin
Big Data ou comment retrouver une aiguille dans une botte de foinBig Data ou comment retrouver une aiguille dans une botte de foin
Big Data ou comment retrouver une aiguille dans une botte de foinPALO IT
 
Sarah : l’Internet des Objets au service de la maison connectée
Sarah : l’Internet des Objets au service de la maison connectée Sarah : l’Internet des Objets au service de la maison connectée
Sarah : l’Internet des Objets au service de la maison connectée PALO IT
 
Product Owner : Gardien du Cap
Product Owner : Gardien du CapProduct Owner : Gardien du Cap
Product Owner : Gardien du CapPALO IT
 
Et pourquoi pas JEE ?
Et pourquoi pas JEE ?Et pourquoi pas JEE ?
Et pourquoi pas JEE ?PALO IT
 

Plus de PALO IT (20)

The Agile Transformation Hell - PALO IT BarCamp
The Agile Transformation Hell - PALO IT BarCampThe Agile Transformation Hell - PALO IT BarCamp
The Agile Transformation Hell - PALO IT BarCamp
 
Design & Develop Disruptive Software
Design & Develop Disruptive SoftwareDesign & Develop Disruptive Software
Design & Develop Disruptive Software
 
Growth Mindset & Psychological Safety - High Performing Teams in Software Dev...
Growth Mindset & Psychological Safety - High Performing Teams in Software Dev...Growth Mindset & Psychological Safety - High Performing Teams in Software Dev...
Growth Mindset & Psychological Safety - High Performing Teams in Software Dev...
 
BigText, compréhension et inférence avancées sur les textes
BigText, compréhension et inférence avancées sur les textesBigText, compréhension et inférence avancées sur les textes
BigText, compréhension et inférence avancées sur les textes
 
Explorez l’Employee eXperience grâce au Design Thinking
Explorez l’Employee eXperience grâce au Design ThinkingExplorez l’Employee eXperience grâce au Design Thinking
Explorez l’Employee eXperience grâce au Design Thinking
 
Self-Organisation & Transparency: Delegation Poker
Self-Organisation & Transparency: Delegation PokerSelf-Organisation & Transparency: Delegation Poker
Self-Organisation & Transparency: Delegation Poker
 
Framework de Digitalisation par les Organisations Exponentielles
Framework de Digitalisation par les Organisations ExponentiellesFramework de Digitalisation par les Organisations Exponentielles
Framework de Digitalisation par les Organisations Exponentielles
 
Project Managers, our World is Changing!
Project Managers, our World is Changing!Project Managers, our World is Changing!
Project Managers, our World is Changing!
 
The Future of User Experience
The Future of User ExperienceThe Future of User Experience
The Future of User Experience
 
Developers are from Mars, Designers are from Venus
Developers are from Mars, Designers are from VenusDevelopers are from Mars, Designers are from Venus
Developers are from Mars, Designers are from Venus
 
Self-Organization in Agile & Digital Transformation
Self-Organization in Agile & Digital Transformation Self-Organization in Agile & Digital Transformation
Self-Organization in Agile & Digital Transformation
 
Blockchain présenté aux Développeurs
Blockchain présenté aux Développeurs Blockchain présenté aux Développeurs
Blockchain présenté aux Développeurs
 
Pourquoi est-ce si difficile de concevoir une API ?
Pourquoi est-ce si difficile de concevoir une API ?Pourquoi est-ce si difficile de concevoir une API ?
Pourquoi est-ce si difficile de concevoir une API ?
 
Emerging Innovation: an exploratory journey into Design Thinking and why it m...
Emerging Innovation: an exploratory journey into Design Thinking and why it m...Emerging Innovation: an exploratory journey into Design Thinking and why it m...
Emerging Innovation: an exploratory journey into Design Thinking and why it m...
 
Données animées
Données animéesDonnées animées
Données animées
 
Et pourquoi pas JEE ?
Et pourquoi pas JEE ?Et pourquoi pas JEE ?
Et pourquoi pas JEE ?
 
Big Data ou comment retrouver une aiguille dans une botte de foin
Big Data ou comment retrouver une aiguille dans une botte de foinBig Data ou comment retrouver une aiguille dans une botte de foin
Big Data ou comment retrouver une aiguille dans une botte de foin
 
Sarah : l’Internet des Objets au service de la maison connectée
Sarah : l’Internet des Objets au service de la maison connectée Sarah : l’Internet des Objets au service de la maison connectée
Sarah : l’Internet des Objets au service de la maison connectée
 
Product Owner : Gardien du Cap
Product Owner : Gardien du CapProduct Owner : Gardien du Cap
Product Owner : Gardien du Cap
 
Et pourquoi pas JEE ?
Et pourquoi pas JEE ?Et pourquoi pas JEE ?
Et pourquoi pas JEE ?
 

Spark Streaming

  • 1. Présentation Société Mars 2013 @ Paris Stanislas BOCQUET CEO +33(0)1 43 12 89 42 sbocquet@palo-it.com SPARK STREAMING, LES DONNÉES QUI VOUS PARLENT EN TEMPS RÉEL 30 SEPTEMBRE 2015 @Paris Nadhem LAMTI Architecte Technique chez PALO IT Saâd-Eddine MALTI Expert BDD chez Voyages SNCF &
  • 2. 2 Au programme Streaming et Architecture Big Data Introduction to Spark Streaming : Word Count Intégration de Flume à Spark Streaming Use case « logs applicatifs » Architecture générale : driver / workers / receivers Monitoring Fail over : reliable / unreliable sources, checkpoint, recover Tuning et performance
  • 4. 4 RAPPELS Juin 2015 HDFS : système de fichiers distribués MAPREDUCE : traitement distribué PIG HIVE SCRIPTING SEQUENTIEL SQL LIKE JAVA Plumbing • In Memory • RDD • Scala/Java/Python
  • 5. 5 ARCHITECTURE BIG DATA Plus familièrement : architecture LAMBDA STOCKENT : en vue d’un REPORTING mensuel par ex Et TRAITENT en temps réel la donnée : en vue d’un MONITORING par ex Savent gérer la donnée à la fois comme : UN STOCK UN FLUX Cas d’utilisation : Systèmes de recommandations Statistiques en temps réel : ex taux d’erreur Pub en ligne : nombre de clics/transformations par campagne
  • 6. 6 ARCHITECTURE BIG DATA Batch LAYER Stocker l’ensemble de données Itération pouvant prendre plusieurs heures Speed LAYER : « temps réel » Traite que les données récentes et compense la latence élevée de la couche Batch Calculées de manière incrémentale en s’appuyant sur des systèmes de traitement de flux et des bases de données en lectures/écritures aléatoires. Serving LAYER: Charger et Exposer les vues des couches batch et temps réel
  • 8. 88 SPARK STREAMING Etend l’API de Spark Core Scalable, haut débit, tolérance au panne Traitement au fil de l’eau des données temps réelles
  • 9. 99 SPARK STREAMING Plusieurs sources possibles Processing utilisant des algorithmes complexes mais des APIs simples : map, reduce, join, window, … Les données traitées peuvent être poussées vers des systèmes de stockage, Dashboards, … Haut niveau d’abstraction : Discritized Stream (DStream)  Séquence de RDDs
  • 13. 1313 DATASOURCE FLUME Système distribué, fiable, à haute disponibilité Solution de collecte et d’agrégation de gros volumes données depuis plusieurs sources Pusher vers un entrepôt de données centralisé (HDFS, ELS …) Agents Source, Channel, Sink
  • 15. 1515 DATASOURCE FLUME Spark Streaming + Flume Integration Guide Approche 1 : Push-based approach : Spark Streaming, essentiellement, initialise un “receiver” agissant comme un agent Avro pour Flume, dans lequel ce dernier peut pousser ses données Configuration de Flume :  Linking : Package spark-streaming-flume_2.10 Programming :
  • 16. 1616 DATASOURCE FLUME Spark Streaming + Flume Integration Guide Approche 2 : Pull-based approach : Flume pousse les données dans le sink, et ces dernières restent en mémoire tampon. Spark Streaming utilize un reliable Flume receiver de manière transactionnelle pour récupérer les données du sink. Une transaction est considérée OK seulement après acquittement et replication de la donnée par Spark Streaming Configuration Flume :  Sink Jars : spark-streaming-flume-sink_2.10, scala-library  Config file  Linking : Package spark-streaming-flume_2.10 Programming :
  • 17. 17 DEMO : USE CASE LOG APPLICATIF
  • 18. 1818 DEMO : USE CASE LOG APPLICATIF Operations : Transformations : lazy Stateless : map, reduce, filter, join, combineByKey Stateful : utilise les données et les résultat du batch précédent. Nécessite un checkpoint. » window / silde : exemple : reduceByKeyAndWindow » Statut à travers le temps : updateByState Actions : output des operations. Sert pour évaluer le contenu d’un Dstream et démarrer un contexte exemple : myDStream.saveAsTextFiles(“mydir”,”.txt”) foreachRDD() : generic output operation
  • 19. 1919 DEMO : USE CASE LOG APPLICATIF Déploiement Inclure les dépendances Spark et celles des sources Générer un package avec Maven Assembly Exécution ./bin/spark-submit -- class … -- master … -- jars [jar_1,jar_2,…,jar_n] -- conf p1=v1 …. <app-jar> [app-arguments] Configuration SparkConf.set(“p1”,”v1”) Dynamique : -- conf p1=v1 -- conf p2=v2 Config Chargée depuis conf/spark-defaults.conf : Les propriétés peuvent être consultées depuis la webUI(http://<driver>:4040) # TAB “Environment”
  • 21. 21 ARCHITECTURE Cluster Manager : Standalone, MESOS, YARN et local( dev/test/debug) WorkerNode : Receives + Processes Driver : programme principale contenant « sparkContext »
  • 22. 22 MONITORING webUI : http://<driver>:4040 Streaming tab Running Receivers : Active Number of records received Receiver error Batches : Processing Time Times Queing delays Environment tab …
  • 24. 24 TOLERANCE AUX PANNES 3 étapes pour traiter les données Recevoir les données Traiter/transformer les données Pusher les données vers l’éxterieur
  • 25. 25 TOLERANCE AUX PANNES Réception des données : Reliable : acquittement après avoir s’assurer que la donnée reçue est répliquée : cas de « PollingFlume » Unreliable : à partir de « Spark 1.2 », « WriteAheadLog » (spark.streaming.receiver.writeAheadLog.enabled -> true) Attention aux performances : utiliser plus qu’un Receiver en // et désactiver la réplication
  • 26. 26 TOLERANCE AUX PANNES Traiter/Transformer les données : CHECKPOINT : Sauvegarder le statut périodiquement dans un système de fichier fiable : Data : RDD intermédiaires sur les opération de transformation Statefull Metadata : Recover from Driver :  Utiliser “getOrCreate” : recréer sparkStreamingContext depuis checkpoint Data dans le répertoire checkpoint  -- supervise : redémarrage en cas d’échec du Driver (seulement on standalone mode)  -- deploy-mode cluster : lancer sur un cluster distant
  • 27. 27 TOLERANCE AUX PANNES Push des données vers l’éxterieur: Mise à jour transactionnelle Doit avoir un identifiant de transaction Du moment ou ça concerne un système externe, c’est de la responsabilité du système d’assurer la cohérence des données
  • 31. 31 Tunning et performance Important : Le temps totale d’exécution d’un batch (scheduling delay + processing time) < batchInterval Suivi via Spark UI Monitoring Data Receiving : Setter le bon « BatchInterval » : tester la limite en jouant sur le débit Augmenter le nombre de Receivers :  Attention : un « Receiver » = un « Worker » ou un « Core »  Merge des Dstream de chaque receiver Alternative au multiple Dstream : « inputStream.repartition () » distribue les données reçues sur des machines du « Cluster » avant « processing » « spark.streaming.backpressure.enabled » : gestion dynamique de la conf « spark.streaming.receiver.maxRate »
  • 32. 32 Tunning et performance Data Processing : Niveau du parallélisme  Spark.core.max - nbr consommateurs  Ajouter la conf « spark.default.parallelism » selon le type du cluster Manager Réduire le nombre de partitions pour réduire le temps de Processing :  Chaque block de données généré par le « Receiver » produit une partition  « spark.streaming.blockInterval » : les données reçu se transforment en un block de données  Partitions = « consumers » * « bactchInterval » / « blockInterval »  « spark.streaming.blockInterval » nbr Partitions mais « batchInterval » mod « blockInterval » = 0  Recommandé par Spark : nb Partition = 2x-3x nombre de « Cores » disponibles  « spark.streaming.blockInterval » = « consumers » * « bactchInterval » / 2 ou 3 * « nb Cores » Eviter les log de parcours des « Dstream » logs mode verbeux et silencieux Kryo pour une sérialisation plus efficace : « spark.serializer org.apache.spark.serializer.KryoSerializer »
  • 33. 33 Tunning et performance Setting the right batch interval : >=500 ms Traite la donnée dès sa réception Memory tuning and GC behavior : Taille de la Window  Mémoire requise de la taille de donnée dans chaque “executor” Set spark.default.parallelism Large pause causée par JVM GC non désirable :  Utiliser plus d’éxécuteurs avec une taille mémoire plus petite CMS GC : diminuer les pauses  In Driver : --driver-java-options  In Executor : spark.executor.extraJavaOptions Contrôler l’éviction des données si pas besoin  Peut se faire explicitement pour les vieilles données au delà de “spark.cleaner.ttl” (peut réduire la pression de l’activité GC)
  • 34. Présentation Société Mars 2013 @ Paris Stanislas BOCQUET CEO +33(0)1 43 12 89 42 sbocquet@palo-it.com MERCI DE VOTRE ATTENTION !