Pourquoi choisir Apache Storm
Dans cet article, je vous présente les avantages et quelques inconvenants du framework du Big Data Apache Storm.
Définition
Selon Wikipédia, Apache Storm est un framework de calcul de traitement de flux distribué, écrit principalement dans le langage de programmation Clojure. Il utilise des “spouts” et des “bolts” créés sur mesure pour définir les sources d’informations et les manipulations permettant un traitement par lots et distribué des données en continu. Une application Storm est conçue comme une “topologie” sous la forme d’un graphe acyclique dirigé (DAG) avec des spouts et des bolts faisant office de sommets du graphe. Les bords du graphique sont des flux nommés et dirigent les données d’un nœud à un autre. Ensemble, la topologie agit comme un pipeline de transformation de données. À un niveau superficiel, la structure topologique générale est similaire à un travail MapReduce , la principale différence étant que les données sont traitées en temps réel par opposition à des lots individuels. De plus, les topologies Storm s’exécutent indéfiniment jusqu’à ce qu’elles soient supprimées, tandis qu’un DAG de travail MapReduce doit finir.[https://fr.wikipedia.org/wiki/Apache_Storm]
Les avantages du framework Big Data Apache Storm
Rapidité
Apache Storm est très rapide, il peut traiter un million de message de 100 octets chaque seconde par nœud.
Évolutivité
Apache Storm utilise une architecture distribuée et parallèle. Ainsi, les calculs s’effectuent en parallèle sur un cluster de machines. On a la possibilité d’ajouter d’autres machines aux clusters pour accélérer le traitement.
Traitement par lot
Apache Storm est fait à la base pour le traitement en temps réel. Pourtant, il y a la possibilité de traiter les données par lots à l’aide de l’extension Trident, offrant beaucoup de flexibilité au coût de la vitesse d’exécution.
Faible latence
Storm peut fournir une meilleure latence avec moins de restrictions que Spark Streaming.
Tolérance aux pannes
Storm montre une excellente capacité à tolérer les pannes. Étant Stateless, Storm peut simplement relancer les travaux sur différents noeuds sans perdre de résultats.
Fiabilité
Storm garantit que chaque unité de données (tuple) sera traitée au moins une fois. Les messages ne sont rejoués qu’en cas d’échec.
Garantie des données
Storm veille à ce que toutes les données soient traitées comme elles ont été conçues lors de leur traitement dans la topologie.
Prise en charge de plusieurs langages de programmation
Les Spouts et Bolts programmés dans un langage autre qu’un langage JVM communiquent avec Apache Storm à l’aide d’un protocole basé sur JSON.
Facile à utiliser
Les configurations par défaut permettent la mise en place d’un environnement de production dès le premier jour. Une fois déployé, Storm est facile à utiliser.
Néanmoins, le framework nest pas sans inconvenant. Voici quelques inconvenants
Les inconvenants d’apache Storm
Mode interactif
Le mode interactif n’est pas pris en charge par Storm.
Coût de développement
Tandis qu’avec Spark le même code peut être utilisé pour les traitements par lots et temps réel, Storm doit utiliser Trident avec des modifications au code.
Garantie de traitement
Chaque donnée sera traitée au moins une fois, mais l’ordre des données à la sortie n’est pas garantie et il y a la possibilité de duplicatas. Par contre, Trident permet d’éviter les duplicatas. Mais Apache Spark est potentiellement mieux adapté dans ce cas.
Ce que tu penses tu le deviens, ce que tu ressens tu l’attires, ce que tu imagines tu le crées.