Introduction à Apache Storm
Qu'est-ce qu'Apache Storm ?
Apache Storm est un système distribué de traitement de Big Data en temps réel. Storm est conçu pour gérer de grandes quantités de données selon une approche tolérante aux pannes et évolutive horizontalement. Il s'agit d'un framework de données en streaming avec le taux d'ingestion le plus élevé. 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 effectuer diverses opérations sur des données en direct en parallèle.
Apache Storm continue d'être le leader de l'analyse de données en temps réel. Storm est facile à configurer et à utiliser, et garantit que chaque message sera traité au moins une fois via la topologie.
Apache Storm vs Hadoop
Fondamentalement, les frameworks Hadoop et Storm sont utilisés pour analyser le Big Data. Les deux se complètent et diffèrent sur certains points. Apache Storm fait tout sauf la persistance, tandis que Hadoop est bon dans tout mais est en retard sur le calcul en temps réel. Le tableau suivant compare les propriétés de Storm et Hadoop.
Storm | Hadoop |
---|---|
Traitement de flux en temps réel | Traitement par lots |
Stateless | Stateful |
Architecture maître/esclave avec Coordination ZooKeep euh. Le nœud maître est appelé nimbus et les nœuds esclaves sont des superviseurs. | Structure maître-esclave avec/sans coordination basée sur ZooKeeper. Le nœud maître est le job tracker et le nœud esclave est le task tracker. |
Le processus de streaming Storm peut accéder à des dizaines de milliers de messages par seconde sur le cluster. | Hadoop Distributed File System (HDFS) utilise le framework MapReduce pour traiter de grandes quantités de données, en quelques minutes ou heures. |
La topologie Storm s'exécute jusqu'à l'arrêt de l'utilisateur ou une panne inattendue et irrécupérable. | Les tâches MapReduce sont exécutées séquentiellement et finalement terminées. |
Les deux sont distribués et tolérants aux pannes | |
Si nimbus/superviseur meurt, un redémarrage le fait continuer là où il s'était arrêté, donc rien n'est affecté. | Si le JobTracker plante, toutes les tâches en cours seront perdues. |
Exemples utilisant Apache Storm
Apache Storm est très célèbre pour le traitement de flux de Big Data en temps réel. Par conséquent, la plupart des entreprises utilisent Storm comme partie intégrante de leurs systèmes. Voici quelques exemples notables : -
Twitter - Twitter utilise Apache Storm comme « produit d'analyse pour éditeurs ». Le « Produit Publisher Analytics » gère chaque tweet et chaque clic sur la plateforme Twitter. Apache Storm est profondément intégré à l'infrastructure Twitter.
NaviSite - NaviSite utilise Storm pour le système de surveillance/audit des journaux d'événements. Chaque journal généré dans le système passera par Storm. Storm vérifiera le message par rapport à l'ensemble configuré d'expressions régulières et s'il y a une correspondance, ce message spécifique sera enregistré dans la base de données.
Wego - Wego est un métamoteur de recherche de voyage basé à Singapour. Les données relatives aux voyages proviennent de nombreuses sources à travers le monde et à des moments différents. Storm aide Wego à rechercher des données en temps réel, à résoudre les problèmes de concurrence et à trouver les meilleures correspondances pour les utilisateurs finaux.
Avantages d'Apache Storm
Voici la liste des avantages fournis par Apache Storm :
Storm est open source, puissant et convivial. Il peut être utilisé aussi bien par les petites que par les grandes entreprises.
Storm est tolérant aux pannes, flexible, fiable et prend en charge n'importe quel langage de programmation.
Permet le streaming en temps réel.
Storm est incroyablement rapide car il possède une énorme puissance pour traiter les données.
Storm peut maintenir les performances en augmentant linéairement les ressources, même si la charge augmente. Il est hautement évolutif.
Storm effectue des actualisations de données et fournit des réponses de bout en bout en quelques secondes ou minutes selon le problème. Il a une latence très faible.
Storm dispose d'une intelligence opérationnelle.
Storm fournit un traitement des données garanti même si un nœud connecté dans le cluster meurt ou si des messages sont perdus.