PROJET AUTOBLOG


Shaarli - Les discussions de Shaarli

Archivé

Site original : Shaarli - Les discussions de Shaarli du 23/07/2013

⇐ retour index

Tutorial - Apache Storm

mercredi 5 août 2015 à 23:22
GuiGui's Show - Liens
Storm est un framework Java (comme tous les frameworks big data, n'en déplaise aux détracteurs de Java :D ) permettant de créer des clusters de traitement de messages.

Ça se compose d'un Nimbus (ordonnanceur de tâches sur le cluster) et de supervisors (membres du cluster) qui lancent des workers, c'est à dire des unités de travail (un processus quoi :- ) qui eux-mêmes exécutent des tâches sur les messages reçus, à l'infini. La communication entre un Nimbus et les supervisors se fait à travers un Zookeeper.

Au niveau logique, Storm fait du stream processing : on a un enchaînement d'unités de travail : des spouts et des bolts. Les spouts sont les points d'entrée, les sources d'informations, ceux qui lisent les messages à traiter depuis un Kafka, un fichier texte ou autre. Les spouts exécutent des tâches, de préférence simples. On enchaîne des spouts et des bolts pour séparer les différentes actions (lecture du message et parse, enrichissement, calcul statistique,...). C'est cet enchaînement qui forme une topologie Storm.  La communication entre ces composants (spouts, bolts) se fait sous forme de tuple. Il est possible de demander à Storm de réaliser des actions sur ces tuples comme des jointures, des agrégations, des filtres. Exemple : vous voulez que tous les messages ayant une même caractéristique (exemple : le champ "toto" = 42 ) soient traités par un même bolt : il suffit de réaliser une agrégation sur cette caractéristique.

Une topologie Storm, en définitive, c'est un gros jar qui contient votre code et toutes les lib dont il a besoin. Ça se charge sur le cluster à partir du Nimbus qui s'occupe du reste.

La beauté de Storm, c'est la montée en charge et le passage à l'échelle dans un framework qui mâche le travail du développeur.
(Permalink)