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...
Stockage 
HDFS 
Flickr. By jonel hanopol 
Flickr. By fdecomite 
Flickr. By NOAA'sNational OceanService
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 
Traitement...
Batch 
View 
(Map-Reduce) 
Capteurs / logs 
Cliques web 
Transactions 
financières 
Data Lake 
2 
3 
Real Time 
View 
Trai...
Batch 
View 
(Map-Reduce) 
Capteurs / logs 
Cliques web 
Transactions 
financières 
Data Lake 
2 
3 
Real Time 
View 
Trai...
Batch 
View 
(Map-Reduce) 
Capteurs / logs 
Cliques web 
Transactions 
financières 
Data Lake 
2 
3 
Real Time 
View 
Trai...
Stockage 
HDFS 
Créé par Nathan Marz@BackType 
Analyse en temps réel d'impact sur les réseaux sociaux 
Open-source(Twit...
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 traitem...
Plusieurs milliers de workers/ clusters 
Parallélisme 
Réassignementautomatique des tâches en échecs 
Fiabilité de traitem...
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 ma...
Stockage 
HDFS 
Source de flux de données. 
Se connecte à une source de données externe puis émet des Tuples. 
Output stre...
Stockage 
HDFS 
Source de flux de données. 
Se connecte à une source de données externe puis émet des Tuples. 
Output stre...
Stockage 
HDFS 
Principaux composants pour manipuler les flux de données. 
Encapsulent la logique des traitements à appliq...
Stockage 
HDFS 
Input stream 
Souscrit à n’importe quels flux devant être: 
Transformés 
Filtrés 
Agrégés 
Peut lire ...
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 
...
Stockage 
HDFS 
Graphe orienté acyclique (DAG) 
Modélisation d’un Workflow 
Les Bolts/Spouts’exécutent en parallèle en ...
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.
Parallélisme = 1 
Parallélisme = 4 
Parallélisme = 2 
Chaque (instance) est exécuté par un exécuteur. 
Chaque(thread) s’ex...
Parallélisme = 1 
Parallélisme = 4 
Parallélisme = 2 
Storm répartit de manière égale le nombre d’executorà travers les wo...
Parallélisme = 1 
Parallélisme = 4 
Parallélisme = 2, Tâches = 6 
Chaque exécute séquentiellement 3 tâches
Storm garantit que chaque «tuplespout» émis sera traité dans son intégralité par la topologie. 
Un tuplepeut être ancré ...
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
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} !...
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 ...
Zookeeper 
Quorum 
Workers 
Workers 
(Master node) 
(Slave node) 
(Slave node) 
Distribue le code à travers le cluster 
...
Zookeeper 
Quorum 
(Master node) 
(Slave node) 
(Slave node) 
$ /bin/stormjar 
Nimbus calcule les assignements des tâches...
Zookeeper 
Quorum 
Workers 
Workers 
(Master node) 
(Slave node) 
(Slave node) 
Les supervisorsdémarrent le nombre de wor...
Zookeeper 
Quorum 
Workers 
Workers 
(Master node) 
(Slave node) 
(Slave node) 
Worker 
Le supervisorredémarre le worker....
Stockage 
HDFS 
Framework au dessus de Storm 
Orienté micro-batch 
Sémantique «exactement une fois» (DistributedRemoteP...
Documentation officielle: http://storm.apache.org 
Mailing liste 
Storm Blueprints: Patterns for DistributedReal- time Com...
http://www.meetup.com/Paris-Storm-User-Group/
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
Prochain SlideShare
Chargement dans…5
×

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

1 625 vues

Publié le

Introduction au traitement temps-réel avec Storm

Publié dans : Technologie
1 commentaire
6 j’aime
Statistiques
Remarques
  • Introduction au traitement temps-réel par Florian Hussonnois. Le REX Storm Redis est disponible ici: http://fr.slideshare.net/benjaminhoudu/rex-storm-redis
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
Aucun téléchargement
Vues
Nombre de vues
1 625
Sur SlideShare
0
Issues des intégrations
0
Intégrations
113
Actions
Partages
0
Téléchargements
71
Commentaires
1
J’aime
6
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

  1. 1. Benjamin Houdu@benjaminhoudu Architecte, Zenika Florian Hussonnois@fhussonnois Lead Développeur Java, Zenika
  2. 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
  3. 3. Stockage HDFS Flickr. By jonel hanopol Flickr. By fdecomite Flickr. By NOAA'sNational OceanService
  4. 4. Données absorbées par le batch Non absorbées Quelques heures de données
  5. 5. Vision erronée de la réalité Données absorbées par le batch Non absorbées Quelques heures de données
  6. 6. Capteurs / logs Cliques web Transactions financières 1
  7. 7. Capteurs / logs Cliques web Transactions financières Data Lake 2 1
  8. 8. Batch View (Map-Reduce) Capteurs / logs Cliques web Transactions financières Data Lake 2 3 1
  9. 9. Batch View (Map-Reduce) Capteurs / logs Cliques web Transactions financières Data Lake Real Time View Traitements Analyses 4 2 3 1
  10. 10. Batch View (Map-Reduce) Capteurs / logs Cliques web Transactions financières Data Lake 2 3 Real Time View Traitements Analyses 4 5 1
  11. 11. Batch View (Map-Reduce) Capteurs / logs Cliques web Transactions financières Data Lake 2 3 Real Time View Traitements Analyses 4 5 1
  12. 12. Batch View (Map-Reduce) Capteurs / logs Cliques web Transactions financières Data Lake 2 3 Real Time View Traitements Analyses 4 5 1
  13. 13. 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
  14. 14. Stockage HDFS Logs serveurs, clicks, capteurs Mise à jour continue de bases de données Paralléliser d’intenses calculs
  15. 15. Traitement au fil de l'eau et en continu de gros volumes de données issues de flux
  16. 16. Traitement au fil de l'eau et en continu de gros volumes de données issues de flux
  17. 17. Plusieurs milliers de workers/ clusters Parallélisme
  18. 18. Plusieurs milliers de workers/ clusters Parallélisme Réassignementautomatique des tâches en échecs
  19. 19. 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
  20. 20. 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
  21. 21. Stockage HDFS Principale structure de données Liste de valeurs nommées –typage dynamique Immuable 
  22. 22. 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
  23. 23. Stockage HDFS Source de flux de données. Se connecte à une source de données externe puis émet des Tuples. Output streams
  24. 24. 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
  25. 25. 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
  26. 26. 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
  27. 27. Stockage HDFS Un boltpeut émettre de nouveaux flux. Input stream Output streams
  28. 28. Stockage HDFS Un boltpeut émettre de nouveaux flux. Input stream Output streams Kafka HDFS / HBase Cassandra MongoDB Elasticsearch
  29. 29. 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.
  30. 30. Les tuplessont distribués aléatoirement et de manière équitable entre les tâches.
  31. 31. Field=A Field=B Le flux est partitionné en fonction d’un ou plusieurs champs.
  32. 32. Le flux est répliqué vers l’ensemble des tâches
  33. 33. La totalité du flux est redirigé vers une unique tâche.
  34. 34. 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).
  35. 35. Parallélisme = 1 Parallélisme = 4 Parallélisme = 2 Storm répartit de manière égale le nombre d’executorà travers les workers.
  36. 36. Parallélisme = 1 Parallélisme = 4 Parallélisme = 2, Tâches = 6 Chaque exécute séquentiellement 3 tâches
  37. 37. 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.
  38. 38. Les boltsinforment le système de la réussite du traitement d’un tuple
  39. 39. Les boltsinforment le système de l’échec du traitement d’un tuple
  40. 40. Un tupleest automatiquement considéré en échec après un certain lapse de temps. Timeout à 30 secondes par défaut
  41. 41. Un de par tuple
  42. 42. Un de par tuple
  43. 43. Storm utilise des boltssystèmes (ackers) pour suivre l’état de complétion d’un tuplespout. Etat de l’arbre de tuples
  44. 44. Le tupleB est ancré au tupleA lorsqu’il est émis. Etat de l’arbre de tuples
  45. 45. Le bolttransmet l’état de l’arbre à la tâche acker. Etat de l’arbre de tuples {A} XOR {A} XOR {B} != 0
  46. 46. Etat de l’arbre de tuples {A} XOR {A} XOR {B} != 0 {A} XOR {A} XOR {B} XOR {B} = 0
  47. 47. 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
  48. 48. Zookeeper Quorum Workers Workers (Master node) (Slave node) Architecture master/slave NSPOF (Slave node)
  49. 49. 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
  50. 50. 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
  51. 51. 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
  52. 52. 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
  53. 53. 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
  54. 54. 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
  55. 55. 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
  56. 56. http://www.meetup.com/Paris-Storm-User-Group/

×