VT2015 Complex Event Processing

From air
Jump to navigation Jump to search

Présentation

Enseignants : DONSEZ Didier, BONNEAU Georges-Pierre

Sujet : Complex Event Processing

Démonstration de Apache Storm et Spark Streaming sur le cloud d'Azure

Auteur : KLIPFFEL Tararaina

Date : 23/10/15

Mots clés :

Document

File:Complex Event Processing.pdf

Abstract

Résumé

Synthèse

Le Traitement des événements complexes (Complex Event Processing) est un concept de traitement d'événements permettant d'identifier les événements significatifs dans un nuage d'événements.

Le CEP emploie des techniques telles que la détection des schémas complexes de multiples événements: corrélation, abstraction, et hiérarchies entre événements et les relations entre événements tels que les liens de causalité, l'adhésion, la chronologie et les processus pilotés par les événements. La fonction du CEP est de découvrir les informations contenues dans les événements qui passent dans toutes les couches d'une organisation et ensuite d'analyser son impact au niveau macro comme "événement complexe" et puis décider du plan d'action en temps réel.

Apache Spark

Apache Spark est un framework de traitements Big Data open source développé par AMPLab, de l’Université UC Berkeley, en 2009 et passé open source sous forme de projet Apache en 2010. Apache Spark permet d'effectuer des analyses sophistiquées. C'est principaux avantages et sa rapidité et sa facilité d’utilisation.

Avantages

Spark présente plusieurs avantages par rapport aux autres technologies big data et MapReduce comme Hadoop et Storm. D’abord, Spark propose un framework complet et unifié pour répondre aux besoins de traitements Big Data pour divers jeux de données, divers par leur nature (texte, graphe, etc.) aussi bien que par le type de source (batch ou flux temps-réel). Ensuite, Spark permet à des applications sur clusters Hadoop d’être exécutées jusqu’à 100 fois plus vite en mémoire, 10 fois plus vite sur disque. Il vous permet d’écrire rapidement des applications en Java, Scala ou Python et inclut un jeu de plus de 80 opérateurs haut-niveau. De plus, il est possible de l’utiliser de façon interactive pour requêter les données depuis un shell.

Enfin, en plus des opérations de Map et Reduce, Spark supporte les requêtes SQL et le streaming de données et propose des fonctionnalités de machine learning et de traitements orientés graphe. Les développeurs peuvent utiliser ces possibilités en stand-alone ou en les combinant en une chaîne de traitement complexe.

À côté des API principales de Spark, l’écosystème contient des librairies additionnelles qui permettent de travailler dans le domaine des analyses big data et du machine learning. Parmi ces librairies, on trouve : Spark Streaming

Spark Streaming

Spark Streaming peut être utilisé pour traitement temps-réel des données en flux. En vérité Spart Streaming ne fait pas de l'analyse de données en temps réel mais utilise plutôt un mode de traitement "micro-batch". C'est à dire que Spark ne traite pas les données d’un flux en continue (contrairement à Apache Storm) mais les accumule pendant un laps de temps fixé avant d’être traitées. Deplus Spark stream utilise pour les données temps-réel DStream, c’est-à-dire une série de RDD (Resilient Distributed Dataset).


batch :En informatique, un traitement par lots est un enchaînement automatique d'une suite de commandes (processus) sur un ordinateur sans intervention d'un opérateur.Une fois que ce processus est terminé (quel que soit le résultat), l'ordinateur traite le lot suivant. Le traitement des lots se termine une fois que tous les lots de la pile ont été exécutés.

Les Resilient Distributed Datasets (basés sur la publication de recherche de Matei), ou RDD, sont un concept au cœur du framework Spark. Vous pouvez voir un RDD comme une table dans une base de données. Celui-ci peut porter tout type de données et est stocké par Spark sur différentes partitions. Les RDD permettent de réarranger les calculs et d’optimiser le traitement. Ils sont aussi tolérants aux pannes car un RDD sait comment recréer et recalculer son ensemble de données. Les RDD sont immutables. Pour obtenir une modification d’un RDD, il faut y appliquer une transformation, qui retournera un nouveau RDD, l’original restera inchangé. Les RDD supportent deux types d’opérations :

Conclusion

Bibliographie