SlideShare une entreprise Scribd logo
Benjamin Houdu@benjaminhoudu 
Architecte, Zenika 
Florian Hussonnois@fhussonnois 
Lead Développeur Java, Zenika
Stockage 
HDFS 
•Système BigDataet Temps-réel 
•Qu’est ce que Storm ? 
•Les principaux concepts 
•Parallélisme et fiabilité de traitement 
•Architecture physique et tolérance à la panne 
1 
2 
3 
3 
4
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
Stockage 
HDFS 
Flickr. By jonel hanopol 
Flickr. By fdecomite 
Flickr. By NOAA'sNational OceanService
Apache Storm - Introduction au traitement temps-réel avec Storm
Données absorbées par le batch 
Non absorbées 
Quelques heures 
de données
Vision erronée de la réalité 
Données absorbées par le batch 
Non absorbées 
Quelques heures 
de données
Capteurs / logs 
Cliques web 
Transactions 
financières 
1
Capteurs / logs 
Cliques web 
Transactions 
financières 
Data Lake 
2 
1
Batch 
View 
(Map-Reduce) 
Capteurs / logs 
Cliques web 
Transactions 
financières 
Data Lake 
2 
3 
1
Batch 
View 
(Map-Reduce) 
Capteurs / logs 
Cliques web 
Transactions 
financières 
Data Lake 
Real Time 
View 
Traitements 
Analyses 
4 
2 
3 
1
Batch 
View 
(Map-Reduce) 
Capteurs / logs 
Cliques web 
Transactions 
financières 
Data Lake 
2 
3 
Real Time 
View 
Traitements 
Analyses 
4 
5 
1
Batch 
View 
(Map-Reduce) 
Capteurs / logs 
Cliques web 
Transactions 
financières 
Data Lake 
2 
3 
Real Time 
View 
Traitements 
Analyses 
4 
5 
1
Batch 
View 
(Map-Reduce) 
Capteurs / logs 
Cliques web 
Transactions 
financières 
Data Lake 
2 
3 
Real Time 
View 
Traitements 
Analyses 
4 
5 
1
Apache Storm - Introduction au traitement temps-réel avec Storm
Stockage 
HDFS 
Créé par Nathan Marz@BackType 
Analyse en temps réel d'impact sur les réseaux sociaux 
Open-source(Twitter) Septembre 2011 
Licence Eclipse Public 1.0 
V 0.5.2 
Evolution rapide 
Incubateur Apache Septembre 2013 
0.9.110 Février 2014 
0.9.225 Juin 2014 
0.9.3 -RC20 Octobre 2014 
«Apache Top-Level» projet depuis Septembre 2014
Stockage 
HDFS 
Logs serveurs, clicks, capteurs 
Mise à jour continue de bases de données 
Paralléliser d’intenses calculs
Traitement au fil de l'eau et en continu de gros volumes de données issues de flux
Traitement au fil de l'eau et en continu de gros volumes de données issues de flux
Plusieurs milliers de workers/ clusters 
Parallélisme
Plusieurs milliers de workers/ clusters 
Parallélisme 
Réassignementautomatique des tâches en échecs
Plusieurs milliers de workers/ clusters 
Parallélisme 
Réassignementautomatique des tâches en échecs 
Fiabilité de traitement de chaque message 
Sémantique : au moins une fois & exactement une fois
Plusieurs milliers de workers/ clusters 
Parallélisme 
Réassignementautomatique des tâches en échecs 
Fiabilité de traitement de chaque message 
Sémantique : au moins une fois & exactement une fois 
Possibilité d’implémenter la logique de traitement avec n'importe quels langages
Apache Storm - Introduction au traitement temps-réel avec Storm
Stockage 
HDFS 
Principale structure de données 
Liste de valeurs nommées –typage dynamique 
Immuable 
Stockage 
HDFS 
Flux de données 
Séquence illimité de tuples 
Un flux de données est créé et traité en temps réel de manière distribué. 
Tuple 
Tuple 
Tuple 
Tuple
Stockage 
HDFS 
Source de flux de données. 
Se connecte à une source de données externe puis émet des Tuples. 
Output streams
Stockage 
HDFS 
Source de flux de données. 
Se connecte à une source de données externe puis émet des Tuples. 
Output streams 
Kafka 
RabbitMQ 
Kestrel 
Redis -PublishSubscribe
Stockage 
HDFS 
Principaux composants pour manipuler les flux de données. 
Encapsulent la logique des traitements à appliquer sur un où plusieurs flux. 
Input stream 
Flickr. By kaveman743
Stockage 
HDFS 
Input stream 
Souscrit à n’importe quels flux devant être: 
Transformés 
Filtrés 
Agrégés 
Peut lire / écrire depuis et vers une base de données
Stockage 
HDFS 
Un boltpeut émettre de nouveaux flux. 
Input stream 
Output streams
Stockage 
HDFS 
Un boltpeut émettre de nouveaux flux. 
Input stream 
Output streams 
Kafka 
HDFS / HBase 
Cassandra 
MongoDB 
Elasticsearch
Apache Storm - Introduction au traitement temps-réel avec Storm
Stockage 
HDFS 
Graphe orienté acyclique (DAG) 
Modélisation d’un Workflow 
Les Bolts/Spouts’exécutent en parallèle en tant que tâches. 
Une topologie s’exécute indéfiniment.
Apache Storm - Introduction au traitement temps-réel avec Storm
Les tuplessont distribués aléatoirement et de manière équitable entre les tâches.
Field=A 
Field=B 
Le flux est partitionné en fonction d’un ou plusieurs champs.
Le flux est répliqué vers l’ensemble des tâches
La totalité du flux est redirigé vers une unique tâche.
Apache Storm - Introduction au traitement temps-réel avec Storm
Parallélisme = 1 
Parallélisme = 4 
Parallélisme = 2 
Chaque (instance) est exécuté par un exécuteur. 
Chaque(thread) s’exécute au sein d’un (JVM).
Parallélisme = 1 
Parallélisme = 4 
Parallélisme = 2 
Storm répartit de manière égale le nombre d’executorà travers les workers.
Parallélisme = 1 
Parallélisme = 4 
Parallélisme = 2, Tâches = 6 
Chaque exécute séquentiellement 3 tâches
Apache Storm - Introduction au traitement temps-réel avec Storm
Storm garantit que chaque «tuplespout» émis sera traité dans son intégralité par la topologie. 
Un tuplepeut être ancré avec un ou plusieurs tuplesparents. 
Un tuplepeut ne pas être rattaché à un arbre.
Les boltsinforment le système de la réussite du traitement d’un tuple
Les boltsinforment le système de l’échec du traitement d’un tuple
Un tupleest automatiquement considéré en échec après un certain lapse de temps. 
Timeout à 30 secondes par défaut
Apache Storm - Introduction au traitement temps-réel avec Storm
Un de par tuple
Un de par tuple
Storm utilise des boltssystèmes (ackers) pour suivre l’état de complétion d’un tuplespout. 
Etat de l’arbre 
de tuples
Le tupleB est ancré au tupleA lorsqu’il est émis. 
Etat de l’arbre 
de tuples
Le bolttransmet l’état de l’arbre à la tâche acker. 
Etat de l’arbre 
de tuples 
{A} XOR {A} XOR {B} != 0
Etat de l’arbre 
de tuples 
{A} XOR {A} XOR {B} != 0 
{A} XOR {A} XOR {B} XOR {B} = 0
La tâche ackernotifie la tâche spoutdu succès du traitement du tupleA. 
Etat de l’arbre 
de tuples 
{A} XOR {A} XOR {B} != 0 
{A} XOR {A} XOR {B} XOR {B} = 0
Apache Storm - Introduction au traitement temps-réel avec Storm
Zookeeper 
Quorum 
Workers 
Workers 
(Master node) 
(Slave node) 
Architecture master/slave 
NSPOF 
(Slave node)
Zookeeper 
Quorum 
Workers 
Workers 
(Master node) 
(Slave node) 
(Slave node) 
Un service centralisé pour maintenir des informations de configuration, fournir une synchronisation distribuée, etc. 
Coordonne le cluster Storm 
Permet à nimbus de découvrir les Supervisors
Zookeeper 
Quorum 
Workers 
Workers 
(Master node) 
(Slave node) 
(Slave node) 
Distribue le code à travers le cluster 
Assigne les tâches 
Traite les erreurs et réassigne les tâches en conséquence
Zookeeper 
Quorum 
(Master node) 
(Slave node) 
(Slave node) 
$ /bin/stormjar 
Nimbus calcule les assignements des tâches et les envoie à Zookeeper. 
Les supervisorssont notifiés via Zookeeper. 
Chaque supervisorrécupère le code depuis nimbus (Thrift) 
1 
2 
3 
1 
2 
3
Zookeeper 
Quorum 
Workers 
Workers 
(Master node) 
(Slave node) 
(Slave node) 
Les supervisorsdémarrent le nombre de workersnécessaires à l’exécution de la topologie 
4 
4
Apache Storm - Introduction au traitement temps-réel avec Storm
Zookeeper 
Quorum 
Workers 
Workers 
(Master node) 
(Slave node) 
(Slave node) 
Worker 
Le supervisorredémarre le worker. 
Nimbus peut réassigner les tâches. 
Supervisor 
Nimbus réassigne les tâches. 
Nimbus 
Les topologies continuent de fonctionner. 
Les ré-assignements sont impossibles. 
Heartbeat
Apache Storm - Introduction au traitement temps-réel avec Storm
Stockage 
HDFS 
Framework au dessus de Storm 
Orienté micro-batch 
Sémantique «exactement une fois» (DistributedRemoteProcedureCall) 
Paralléliser des calculs intenses 
Topologie coordonnée via une serveur DRPC
Documentation officielle: http://storm.apache.org 
Mailing liste 
Storm Blueprints: Patterns for DistributedReal- time Computation 
P. Taylor Goetz, Brian O’Neil 
Big Data -Principles and best practices of scalable realtimedata systems, 
Nathan Marzand James Warren
http://www.meetup.com/Paris-Storm-User-Group/

Contenu connexe

Tendances

BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
Lilia Sfaxi
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
Lilia Sfaxi
 
Introduction au BIG DATA
Introduction au BIG DATAIntroduction au BIG DATA
Introduction au BIG DATA
Zakariyaa AIT ELMOUDEN
 
Technologies pour le Big Data
Technologies pour le Big DataTechnologies pour le Big Data
Technologies pour le Big Data
Minyar Sassi Hidri
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3
Amal Abid
 
Chapitre 2 hadoop
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoop
Mouna Torjmen
 
Installation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidInstallation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abid
Amal Abid
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
Lilia Sfaxi
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Hatim CHAHDI
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
Lilia Sfaxi
 
Chapitre 3 spark
Chapitre 3 sparkChapitre 3 spark
Chapitre 3 spark
Mouna Torjmen
 
Chp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation MultidimensionnelleChp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation Multidimensionnelle
Lilia Sfaxi
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
Amal Abid
 
Les BD NoSQL
Les BD NoSQLLes BD NoSQL
Les BD NoSQL
Minyar Sassi Hidri
 
Une introduction à HBase
Une introduction à HBaseUne introduction à HBase
Une introduction à HBase
Modern Data Stack France
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
Lilia Sfaxi
 
Introduction à la big data V2
Introduction à la big data V2Introduction à la big data V2
Introduction à la big data V2
Mehdi TAZI
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
marwa baich
 
Big data
Big dataBig data
Big data
Yosra ADDALI
 
Modélisation de données pour MongoDB
Modélisation de données pour MongoDBModélisation de données pour MongoDB
Modélisation de données pour MongoDB
MongoDB
 

Tendances (20)

BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
 
Introduction au BIG DATA
Introduction au BIG DATAIntroduction au BIG DATA
Introduction au BIG DATA
 
Technologies pour le Big Data
Technologies pour le Big DataTechnologies pour le Big Data
Technologies pour le Big Data
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3
 
Chapitre 2 hadoop
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoop
 
Installation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abidInstallation hadoopv2.7.4-amal abid
Installation hadoopv2.7.4-amal abid
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Chapitre 3 spark
Chapitre 3 sparkChapitre 3 spark
Chapitre 3 spark
 
Chp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation MultidimensionnelleChp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation Multidimensionnelle
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
Les BD NoSQL
Les BD NoSQLLes BD NoSQL
Les BD NoSQL
 
Une introduction à HBase
Une introduction à HBaseUne introduction à HBase
Une introduction à HBase
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 
Introduction à la big data V2
Introduction à la big data V2Introduction à la big data V2
Introduction à la big data V2
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
 
Big data
Big dataBig data
Big data
 
Modélisation de données pour MongoDB
Modélisation de données pour MongoDBModélisation de données pour MongoDB
Modélisation de données pour MongoDB
 

En vedette

Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
ALTIC Altic
 
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Ippon
 
Paris stormusergroup intrudocution
Paris stormusergroup intrudocutionParis stormusergroup intrudocution
Paris stormusergroup intrudocution
Paris_Storm_UG
 
Analyser sa maison à l’aide de Apache Storm (Big Data en Temps Réel)
Analyser sa maison à l’aide de Apache Storm (Big Data en Temps Réel)Analyser sa maison à l’aide de Apache Storm (Big Data en Temps Réel)
Analyser sa maison à l’aide de Apache Storm (Big Data en Temps Réel)
Microsoft Décideurs IT
 
Petit-déjeuner OCTO Technology : Calculez vos indicateurs en temps réel ave...
Petit-déjeuner OCTO Technology :  Calculez vos indicateurs en temps réel ave...Petit-déjeuner OCTO Technology :  Calculez vos indicateurs en temps réel ave...
Petit-déjeuner OCTO Technology : Calculez vos indicateurs en temps réel ave...
OCTO Technology
 
Présentation de Apache Zookeeper
Présentation de Apache ZookeeperPrésentation de Apache Zookeeper
Présentation de Apache Zookeeper
Michaël Morello
 
PaaS Emerging Technologies - October 2015
PaaS Emerging Technologies - October 2015PaaS Emerging Technologies - October 2015
PaaS Emerging Technologies - October 2015
Krishna-Kumar
 
Démystifions le machine learning avec spark par David Martin pour le Salon B...
Démystifions le machine learning avec spark par David Martin pour le Salon B...Démystifions le machine learning avec spark par David Martin pour le Salon B...
Démystifions le machine learning avec spark par David Martin pour le Salon B...
Ippon
 
Du Big Data vers le SMART Data : Scénario d'un processus
Du Big Data vers le SMART Data : Scénario d'un processusDu Big Data vers le SMART Data : Scénario d'un processus
Du Big Data vers le SMART Data : Scénario d'un processus
CHAKER ALLAOUI
 
Apache storm vs. Spark Streaming
Apache storm vs. Spark StreamingApache storm vs. Spark Streaming
Apache storm vs. Spark Streaming
P. Taylor Goetz
 
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec CassandraBreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
Michaël Figuière
 
kafka
kafkakafka
Performance opérationnelle via demarche BPM
Performance opérationnelle via demarche BPMPerformance opérationnelle via demarche BPM
Performance opérationnelle via demarche BPM
Olivier Laporte
 
James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie CAST 2014 Standards – promoting quality or restricting competi...James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie Christie
 
Continuous delivery, a plugin for Kanban LKFR14
Continuous delivery, a plugin for Kanban LKFR14Continuous delivery, a plugin for Kanban LKFR14
Continuous delivery, a plugin for Kanban LKFR14
Samuel RETIERE
 
ApacheCon Europe 2012 -Big Search 4 Big Data
ApacheCon Europe 2012 -Big Search 4 Big DataApacheCon Europe 2012 -Big Search 4 Big Data
ApacheCon Europe 2012 -Big Search 4 Big Data
OpenSource Connections
 
Open Food Facts - Product Tank Paris - 25/09/2014
Open Food Facts - Product Tank Paris - 25/09/2014Open Food Facts - Product Tank Paris - 25/09/2014
Open Food Facts - Product Tank Paris - 25/09/2014
Stéphane Gigandet
 
Does Your Code Speak Business
Does Your Code Speak BusinessDoes Your Code Speak Business
Does Your Code Speak Business
Maxime Sanglan-Charlier
 
My agile bag agile tour beirut 2014
My agile bag agile tour beirut 2014My agile bag agile tour beirut 2014
My agile bag agile tour beirut 2014
Pierre Hervouet
 

En vedette (20)

Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
 
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
 
Paris stormusergroup intrudocution
Paris stormusergroup intrudocutionParis stormusergroup intrudocution
Paris stormusergroup intrudocution
 
Analyser sa maison à l’aide de Apache Storm (Big Data en Temps Réel)
Analyser sa maison à l’aide de Apache Storm (Big Data en Temps Réel)Analyser sa maison à l’aide de Apache Storm (Big Data en Temps Réel)
Analyser sa maison à l’aide de Apache Storm (Big Data en Temps Réel)
 
Petit-déjeuner OCTO Technology : Calculez vos indicateurs en temps réel ave...
Petit-déjeuner OCTO Technology :  Calculez vos indicateurs en temps réel ave...Petit-déjeuner OCTO Technology :  Calculez vos indicateurs en temps réel ave...
Petit-déjeuner OCTO Technology : Calculez vos indicateurs en temps réel ave...
 
Présentation de Apache Zookeeper
Présentation de Apache ZookeeperPrésentation de Apache Zookeeper
Présentation de Apache Zookeeper
 
PaaS Emerging Technologies - October 2015
PaaS Emerging Technologies - October 2015PaaS Emerging Technologies - October 2015
PaaS Emerging Technologies - October 2015
 
Démystifions le machine learning avec spark par David Martin pour le Salon B...
Démystifions le machine learning avec spark par David Martin pour le Salon B...Démystifions le machine learning avec spark par David Martin pour le Salon B...
Démystifions le machine learning avec spark par David Martin pour le Salon B...
 
Du Big Data vers le SMART Data : Scénario d'un processus
Du Big Data vers le SMART Data : Scénario d'un processusDu Big Data vers le SMART Data : Scénario d'un processus
Du Big Data vers le SMART Data : Scénario d'un processus
 
Apache storm vs. Spark Streaming
Apache storm vs. Spark StreamingApache storm vs. Spark Streaming
Apache storm vs. Spark Streaming
 
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec CassandraBreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
BreizhCamp (Jun 2011) - Haute disponibilité et élasticité avec Cassandra
 
kafka
kafkakafka
kafka
 
Performance opérationnelle via demarche BPM
Performance opérationnelle via demarche BPMPerformance opérationnelle via demarche BPM
Performance opérationnelle via demarche BPM
 
James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie CAST 2014 Standards – promoting quality or restricting competi...James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie CAST 2014 Standards – promoting quality or restricting competi...
 
Continuous delivery, a plugin for Kanban LKFR14
Continuous delivery, a plugin for Kanban LKFR14Continuous delivery, a plugin for Kanban LKFR14
Continuous delivery, a plugin for Kanban LKFR14
 
ApacheCon Europe 2012 -Big Search 4 Big Data
ApacheCon Europe 2012 -Big Search 4 Big DataApacheCon Europe 2012 -Big Search 4 Big Data
ApacheCon Europe 2012 -Big Search 4 Big Data
 
Open Food Facts - Product Tank Paris - 25/09/2014
Open Food Facts - Product Tank Paris - 25/09/2014Open Food Facts - Product Tank Paris - 25/09/2014
Open Food Facts - Product Tank Paris - 25/09/2014
 
Does Your Code Speak Business
Does Your Code Speak BusinessDoes Your Code Speak Business
Does Your Code Speak Business
 
My agile bag agile tour beirut 2014
My agile bag agile tour beirut 2014My agile bag agile tour beirut 2014
My agile bag agile tour beirut 2014
 
Ben Broeckx
Ben BroeckxBen Broeckx
Ben Broeckx
 

Similaire à Apache Storm - Introduction au traitement temps-réel avec Storm

Noyau temps réel freertos cheriet mohammed el amine
Noyau temps réel freertos cheriet mohammed el amineNoyau temps réel freertos cheriet mohammed el amine
Noyau temps réel freertos cheriet mohammed el amine
CHERIET Mohammed El Amine
 
Apache kafka big data track
Apache kafka   big data trackApache kafka   big data track
Apache kafka big data track
Paris Open Source Summit
 
Presentation des outils traitements distribues
Presentation des outils traitements distribuesPresentation des outils traitements distribues
Presentation des outils traitements distribues
Lê Anh
 
WS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - XebiaWS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - Xebia
Olivier BAZOUD
 
Realtime Web avec Kafka, Spark et Mesos
Realtime Web avec Kafka, Spark et MesosRealtime Web avec Kafka, Spark et Mesos
Realtime Web avec Kafka, Spark et Mesos
ebiznext
 
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
Victor Coustenoble
 
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel ArkéaMathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Modern Data Stack France
 
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Christophe Furmaniak
 
Spark Streaming
Spark StreamingSpark Streaming
Spark Streaming
PALO IT
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantes
Christophe Furmaniak
 
REX Ansible
REX AnsibleREX Ansible
REX Ansible
Noël Bardelot
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in Paris
Ted Drake
 
Mutualisation sous Solaris
Mutualisation sous SolarisMutualisation sous Solaris
Mutualisation sous Solaris
gloumps
 
Using UBCluster
Using UBClusterUsing UBCluster
Using UBCluster
Mohammed TAMALI
 
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier KrantzOps@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Olivier DASINI
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.Fr
Oxalide
 
Kafka Connect & Kafka Streams - Paris Kafka User Group
Kafka Connect & Kafka Streams - Paris Kafka User GroupKafka Connect & Kafka Streams - Paris Kafka User Group
Kafka Connect & Kafka Streams - Paris Kafka User Group
Hervé Rivière
 
Les secrets de la JVM pour les algos à haute fréquence
Les secrets de la JVM pour les algos à haute fréquenceLes secrets de la JVM pour les algos à haute fréquence
Les secrets de la JVM pour les algos à haute fréquence
OCTO Technology
 
[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
 
Messages queues - Socloz@PHPForum 2013
Messages queues - Socloz@PHPForum 2013Messages queues - Socloz@PHPForum 2013
Messages queues - Socloz@PHPForum 2013
Jean-Francois Bustarret
 

Similaire à Apache Storm - Introduction au traitement temps-réel avec Storm (20)

Noyau temps réel freertos cheriet mohammed el amine
Noyau temps réel freertos cheriet mohammed el amineNoyau temps réel freertos cheriet mohammed el amine
Noyau temps réel freertos cheriet mohammed el amine
 
Apache kafka big data track
Apache kafka   big data trackApache kafka   big data track
Apache kafka big data track
 
Presentation des outils traitements distribues
Presentation des outils traitements distribuesPresentation des outils traitements distribues
Presentation des outils traitements distribues
 
WS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - XebiaWS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - Xebia
 
Realtime Web avec Kafka, Spark et Mesos
Realtime Web avec Kafka, Spark et MesosRealtime Web avec Kafka, Spark et Mesos
Realtime Web avec Kafka, Spark et Mesos
 
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
 
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel ArkéaMathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
Mathias Herberts fait le retour d'expérience Hadoop au Crédit Mutuel Arkéa
 
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
 
Spark Streaming
Spark StreamingSpark Streaming
Spark Streaming
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantes
 
REX Ansible
REX AnsibleREX Ansible
REX Ansible
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in Paris
 
Mutualisation sous Solaris
Mutualisation sous SolarisMutualisation sous Solaris
Mutualisation sous Solaris
 
Using UBCluster
Using UBClusterUsing UBCluster
Using UBCluster
 
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier KrantzOps@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.Fr
 
Kafka Connect & Kafka Streams - Paris Kafka User Group
Kafka Connect & Kafka Streams - Paris Kafka User GroupKafka Connect & Kafka Streams - Paris Kafka User Group
Kafka Connect & Kafka Streams - Paris Kafka User Group
 
Les secrets de la JVM pour les algos à haute fréquence
Les secrets de la JVM pour les algos à haute fréquenceLes secrets de la JVM pour les algos à haute fréquence
Les secrets de la JVM pour les algos à haute fréquence
 
[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...
 
Messages queues - Socloz@PHPForum 2013
Messages queues - Socloz@PHPForum 2013Messages queues - Socloz@PHPForum 2013
Messages queues - Socloz@PHPForum 2013
 

Apache Storm - Introduction au traitement temps-réel avec Storm

  • 1. Benjamin Houdu@benjaminhoudu Architecte, Zenika Florian Hussonnois@fhussonnois Lead Développeur Java, Zenika
  • 2. Stockage HDFS •Système BigDataet Temps-réel •Qu’est ce que Storm ? •Les principaux concepts •Parallélisme et fiabilité de traitement •Architecture physique et tolérance à la panne 1 2 3 3 4
  • 5. Stockage HDFS Flickr. By jonel hanopol Flickr. By fdecomite Flickr. By NOAA'sNational OceanService
  • 7. Données absorbées par le batch Non absorbées Quelques heures de données
  • 8. Vision erronée de la réalité Données absorbées par le batch Non absorbées Quelques heures de données
  • 9. Capteurs / logs Cliques web Transactions financières 1
  • 10. Capteurs / logs Cliques web Transactions financières Data Lake 2 1
  • 11. Batch View (Map-Reduce) Capteurs / logs Cliques web Transactions financières Data Lake 2 3 1
  • 12. Batch View (Map-Reduce) Capteurs / logs Cliques web Transactions financières Data Lake Real Time View Traitements Analyses 4 2 3 1
  • 13. Batch View (Map-Reduce) Capteurs / logs Cliques web Transactions financières Data Lake 2 3 Real Time View Traitements Analyses 4 5 1
  • 14. Batch View (Map-Reduce) Capteurs / logs Cliques web Transactions financières Data Lake 2 3 Real Time View Traitements Analyses 4 5 1
  • 15. Batch View (Map-Reduce) Capteurs / logs Cliques web Transactions financières Data Lake 2 3 Real Time View Traitements Analyses 4 5 1
  • 17. Stockage HDFS Créé par Nathan Marz@BackType Analyse en temps réel d'impact sur les réseaux sociaux Open-source(Twitter) Septembre 2011 Licence Eclipse Public 1.0 V 0.5.2 Evolution rapide Incubateur Apache Septembre 2013 0.9.110 Février 2014 0.9.225 Juin 2014 0.9.3 -RC20 Octobre 2014 «Apache Top-Level» projet depuis Septembre 2014
  • 18. Stockage HDFS Logs serveurs, clicks, capteurs Mise à jour continue de bases de données Paralléliser d’intenses calculs
  • 19. Traitement au fil de l'eau et en continu de gros volumes de données issues de flux
  • 20. Traitement au fil de l'eau et en continu de gros volumes de données issues de flux
  • 21. Plusieurs milliers de workers/ clusters Parallélisme
  • 22. Plusieurs milliers de workers/ clusters Parallélisme Réassignementautomatique des tâches en échecs
  • 23. Plusieurs milliers de workers/ clusters Parallélisme Réassignementautomatique des tâches en échecs Fiabilité de traitement de chaque message Sémantique : au moins une fois & exactement une fois
  • 24. Plusieurs milliers de workers/ clusters Parallélisme Réassignementautomatique des tâches en échecs Fiabilité de traitement de chaque message Sémantique : au moins une fois & exactement une fois Possibilité d’implémenter la logique de traitement avec n'importe quels langages
  • 26. Stockage HDFS Principale structure de données Liste de valeurs nommées –typage dynamique Immuable 
  • 27. Stockage HDFS Flux de données Séquence illimité de tuples Un flux de données est créé et traité en temps réel de manière distribué. Tuple Tuple Tuple Tuple
  • 28. Stockage HDFS Source de flux de données. Se connecte à une source de données externe puis émet des Tuples. Output streams
  • 29. Stockage HDFS Source de flux de données. Se connecte à une source de données externe puis émet des Tuples. Output streams Kafka RabbitMQ Kestrel Redis -PublishSubscribe
  • 30. Stockage HDFS Principaux composants pour manipuler les flux de données. Encapsulent la logique des traitements à appliquer sur un où plusieurs flux. Input stream Flickr. By kaveman743
  • 31. Stockage HDFS Input stream Souscrit à n’importe quels flux devant être: Transformés Filtrés Agrégés Peut lire / écrire depuis et vers une base de données
  • 32. Stockage HDFS Un boltpeut émettre de nouveaux flux. Input stream Output streams
  • 33. Stockage HDFS Un boltpeut émettre de nouveaux flux. Input stream Output streams Kafka HDFS / HBase Cassandra MongoDB Elasticsearch
  • 35. Stockage HDFS Graphe orienté acyclique (DAG) Modélisation d’un Workflow Les Bolts/Spouts’exécutent en parallèle en tant que tâches. Une topologie s’exécute indéfiniment.
  • 37. Les tuplessont distribués aléatoirement et de manière équitable entre les tâches.
  • 38. Field=A Field=B Le flux est partitionné en fonction d’un ou plusieurs champs.
  • 39. Le flux est répliqué vers l’ensemble des tâches
  • 40. La totalité du flux est redirigé vers une unique tâche.
  • 42. Parallélisme = 1 Parallélisme = 4 Parallélisme = 2 Chaque (instance) est exécuté par un exécuteur. Chaque(thread) s’exécute au sein d’un (JVM).
  • 43. Parallélisme = 1 Parallélisme = 4 Parallélisme = 2 Storm répartit de manière égale le nombre d’executorà travers les workers.
  • 44. Parallélisme = 1 Parallélisme = 4 Parallélisme = 2, Tâches = 6 Chaque exécute séquentiellement 3 tâches
  • 46. Storm garantit que chaque «tuplespout» émis sera traité dans son intégralité par la topologie. Un tuplepeut être ancré avec un ou plusieurs tuplesparents. Un tuplepeut ne pas être rattaché à un arbre.
  • 47. Les boltsinforment le système de la réussite du traitement d’un tuple
  • 48. Les boltsinforment le système de l’échec du traitement d’un tuple
  • 49. Un tupleest automatiquement considéré en échec après un certain lapse de temps. Timeout à 30 secondes par défaut
  • 51. Un de par tuple
  • 52. Un de par tuple
  • 53. Storm utilise des boltssystèmes (ackers) pour suivre l’état de complétion d’un tuplespout. Etat de l’arbre de tuples
  • 54. Le tupleB est ancré au tupleA lorsqu’il est émis. Etat de l’arbre de tuples
  • 55. Le bolttransmet l’état de l’arbre à la tâche acker. Etat de l’arbre de tuples {A} XOR {A} XOR {B} != 0
  • 56. Etat de l’arbre de tuples {A} XOR {A} XOR {B} != 0 {A} XOR {A} XOR {B} XOR {B} = 0
  • 57. La tâche ackernotifie la tâche spoutdu succès du traitement du tupleA. Etat de l’arbre de tuples {A} XOR {A} XOR {B} != 0 {A} XOR {A} XOR {B} XOR {B} = 0
  • 59. Zookeeper Quorum Workers Workers (Master node) (Slave node) Architecture master/slave NSPOF (Slave node)
  • 60. Zookeeper Quorum Workers Workers (Master node) (Slave node) (Slave node) Un service centralisé pour maintenir des informations de configuration, fournir une synchronisation distribuée, etc. Coordonne le cluster Storm Permet à nimbus de découvrir les Supervisors
  • 61. Zookeeper Quorum Workers Workers (Master node) (Slave node) (Slave node) Distribue le code à travers le cluster Assigne les tâches Traite les erreurs et réassigne les tâches en conséquence
  • 62. Zookeeper Quorum (Master node) (Slave node) (Slave node) $ /bin/stormjar Nimbus calcule les assignements des tâches et les envoie à Zookeeper. Les supervisorssont notifiés via Zookeeper. Chaque supervisorrécupère le code depuis nimbus (Thrift) 1 2 3 1 2 3
  • 63. Zookeeper Quorum Workers Workers (Master node) (Slave node) (Slave node) Les supervisorsdémarrent le nombre de workersnécessaires à l’exécution de la topologie 4 4
  • 65. Zookeeper Quorum Workers Workers (Master node) (Slave node) (Slave node) Worker Le supervisorredémarre le worker. Nimbus peut réassigner les tâches. Supervisor Nimbus réassigne les tâches. Nimbus Les topologies continuent de fonctionner. Les ré-assignements sont impossibles. Heartbeat
  • 67. Stockage HDFS Framework au dessus de Storm Orienté micro-batch Sémantique «exactement une fois» (DistributedRemoteProcedureCall) Paralléliser des calculs intenses Topologie coordonnée via une serveur DRPC
  • 68. Documentation officielle: http://storm.apache.org Mailing liste Storm Blueprints: Patterns for DistributedReal- time Computation P. Taylor Goetz, Brian O’Neil Big Data -Principles and best practices of scalable realtimedata systems, Nathan Marzand James Warren