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
Stockage
HDFS
Flickr. By jonel hanopol
Flickr. By fdecomite
Flickr. By NOAA'sNational OceanService
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
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
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
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
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.
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.
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
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
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