Apache Storm - Introduction

Qu'est-ce qu'Apache Storm?

Apache Storm est un système de traitement de Big Data distribué en temps réel. Storm est conçu pour traiter une grande quantité de données dans une méthode évolutive horizontale et tolérante aux pannes. Il s'agit d'un cadre de données en continu qui a la capacité des taux d'ingestion les plus élevés. Bien que Storm soit sans état, il gère l'environnement distribué et l'état du cluster via Apache ZooKeeper. C'est simple et vous pouvez exécuter toutes sortes de manipulations sur des données en temps réel en parallèle.

Apache Storm continue d'être un leader de l'analyse de données en temps réel. Storm est facile à configurer, à utiliser et garantit que chaque message sera traité à travers la topologie au moins une fois.

Apache Storm contre Hadoop

Fondamentalement, les frameworks Hadoop et Storm sont utilisés pour analyser le Big Data. Les deux se complètent et diffèrent à certains égards. Apache Storm effectue toutes les opérations à l'exception de la persistance, tandis que Hadoop est bon dans tout mais reste en retard dans le calcul en temps réel. Le tableau suivant compare les attributs de Storm et Hadoop.

Tempête Hadoop
Traitement de flux en temps réel Le traitement par lots
Apatride Avec état
Architecture maître / esclave avec coordination basée sur ZooKeeper. Le nœud maître est appelénimbus et les esclaves sont supervisors. Architecture maître-esclave avec / sans coordination basée sur ZooKeeper. Le nœud maître estjob tracker et le nœud esclave est task tracker.
Un processus de streaming Storm peut accéder à des dizaines de milliers de messages par seconde sur le cluster. Le système de fichiers distribués Hadoop (HDFS) utilise le framework MapReduce pour traiter une grande quantité de données qui prend des minutes ou des heures.
La topologie Storm s'exécute jusqu'à l'arrêt par l'utilisateur ou une défaillance irrécupérable inattendue. Les travaux MapReduce sont exécutés dans un ordre séquentiel et terminés par la suite.
Both are distributed and fault-tolerant
Si nimbus / superviseur meurt, le redémarrage le fait continuer là où il s'est arrêté, donc rien n'est affecté. Si le JobTracker meurt, tous les travaux en cours sont perdus.

Cas d'utilisation d'Apache Storm

Apache Storm est très célèbre pour le traitement de flux de données volumineuses en temps réel. Pour cette raison, la plupart des entreprises utilisent Storm comme partie intégrante de leur système. Quelques exemples notables sont les suivants -

Twitter- Twitter utilise Apache Storm pour sa gamme de «produits Publisher Analytics». Les «produits d'analyse des éditeurs» traitent chacun des tweets et clics sur la plateforme Twitter. Apache Storm est profondément intégré à l'infrastructure Twitter.

NaviSite- NaviSite utilise Storm pour le système de surveillance / d'audit du journal des événements. Tous les journaux générés dans le système passeront par la tempête. Storm vérifiera le message par rapport à l'ensemble configuré d'expressions régulières et s'il y a une correspondance, alors ce message particulier sera enregistré dans la base de données.

Wego- Wego est un méta-moteur de recherche de voyage situé à Singapour. Les données relatives aux voyages proviennent de nombreuses sources du monde entier avec des horaires différents. Storm aide Wego à rechercher des données en temps réel, à résoudre les problèmes de concurrence et à trouver la meilleure correspondance pour l'utilisateur final.

Avantages d'Apache Storm

Voici une liste des avantages qu'offre Apache Storm -

  • Storm est open source, robuste et convivial. Il pourrait être utilisé aussi bien dans les petites entreprises que dans les grandes entreprises.

  • Storm est tolérant aux pannes, flexible, fiable et prend en charge n'importe quel langage de programmation.

  • Permet le traitement des flux en temps réel.

  • Storm est incroyablement rapide car il a une énorme puissance de traitement des données.

  • Storm peut maintenir les performances même sous une charge croissante en ajoutant des ressources de manière linéaire. Il est hautement évolutif.

  • Storm effectue l'actualisation des données et la réponse de livraison de bout en bout en quelques secondes ou minutes dépend du problème. Il a une latence très faible.

  • Storm a une intelligence opérationnelle.

  • Storm assure un traitement des données garanti même si l'un des nœuds connectés du cluster meurt ou si des messages sont perdus.