Summary

This document presents a detailed overview of Apache Spark, a widely used open-source cluster computing framework for large-scale data processing. It explores various aspects of Spark, including its architecture, core concepts like RDDs (Resilient Distributed Datasets), transformations and actions, along with examples of its usage in different scenarios. The explanations are well-organized, clear, and well-illustrated with diagrams.

Full Transcript

Apache SPARK [email protected] Tasnim Abar 1 Présentation Il s'agit d'un moteur de calcul Big Data rapide, polyvalent et évolutif basé sur la mémoire. En tant que solution unique, Apache Spark intègre le traitement par lots, la diffusion en co...

Apache SPARK [email protected] Tasnim Abar 1 Présentation Il s'agit d'un moteur de calcul Big Data rapide, polyvalent et évolutif basé sur la mémoire. En tant que solution unique, Apache Spark intègre le traitement par lots, la diffusion en continu en temps réel, les requêtes interactives, la programmation graphique et l'apprentissage automatique. Apache Spark a été développé dans le laboratoire AMP de l'UC Berkeley en 2009. Licence Apache. Traitement de large volume de données. Traitement distribué Ecrit en Scala Tasnim Abar 2 Présentation Spark : plus rapide:  Utilisation d’une mémoire Partagée RDD’s 100x plus rapide, 10x moins d’itérations. Tasnim Abar 3 Présentation Tasnim Abar 4 Présentation Spark : facile à utiliser:  Spark est développé en Scala et supporte quatre langages: Scala, Java, Python (PySpark), R (SparkR).  Une liste d’Operaters pour faciliter la manipulation des données au travers des RDD’S. ○ map() : une valeur → une valeur ○ mapToPair() : une valeur → un tuple ○ filter() : filtre les valeurs/tuples ○ groupByKey() : regroupe les valeurs par clés ○ reduceByKey() : aggrège les valeurs par clés ○ join(), cogroup()... : jointure entre deux RDD ○ foreach() : exécute une fonction sur chaque valeur/tuple Tasnim Abar 5 Présentation Tasnim Abar 6 Structure de données Spark : RDD - Core Concept of Spark Les datasets distribués résilients (RDD) sont des datasets distribués élastiques, en lecture seule et partitionnés. Les RDD sont stockés dans la mémoire par défaut et sont écrits sur les disques lorsque la mémoire est insuffisante. Les données RDD sont stockées dans des clusters en tant que partitions. Les RDD ont un mécanisme de lignage, qui permet une récupération rapide des données en cas de perte de données. Tasnim Abar 7 Structure de données Spark : RDD - Core Concept of Spark Narrow dependency indique que chaque partition d'un RDD parent peut être utilisé par au plus une partition d'un RDD enfant, par exemple, map, filter et union. Wide dependency indique que les partitions de plusieurs RDD enfants dépendent de la partition du même RDD parent, exemple, groupByKey, reduceByKey et sortByKey Tasnim Abar 8 Structure de données Spark : RDD - Core Concept of Spark Les opérations Spark peuvent être classées en opérations de création, de conversion, de contrôle et de comportement:  Opération de Création : permet de créer un RDD. Un RDD est créé par une collecte de mémoire et un système de stockage externe ou par une opération de transformation.  Opération de Transformation : Un RDD est transformé en un nouveau RDD par certaines opérations. L'opération de transformation du RDD est une opération paresseuse, qui définit uniquement un nouveau RDD mais ne l'exécute pas immédiatement. (map(), filter(), reduceByKey(), join()) Tasnim Abar 9 Structure de données Spark : RDD - Core Concept of Spark  Opération de Contrôle : la persistance RDD est effectuée. Un RDD peut être stocké sur le disque ou la mémoire en fonction de différentes politiques de stockage. Par exemple, l'API de cache met en cache le RDD dans la mémoire par défaut. Spark peut stocker RDD dans la mémoire ou le système de fichiers du disque de manière persistante. Le RDD en mémoire peut grandement améliorer le calcul itératif et le partage de données entre les modèles informatiques. Généralement, 60 % de la mémoire du nœud d'exécution est utilisé pour mettre en cache les données et les 40 % restants sont utilisés pour exécuter des tâches. Dans Spark, les opérations persist() et cache() sont utilisées pour la persistance des données.  Opération d‘Action : une opération qui peut déclencher l'exécution de Spark. Les opérations d'action dans Spark sont classées en deux types. L'une consiste à sortir le résultat du calcul et l'autre à enregistrer le RDD dans un système de fichiers ou une base de données externe. (reduce(), collect(), count(), first(), take()) Tasnim Abar 10 Structure de données Spark : RDD - Core Concept of Spark Les transformations Tasnim Abar 11 Structure de données Spark : RDD - Core Concept of Spark Les actions Tasnim Abar 12 Structure de données Spark : RDD - Core Concept of Spark Dans une application Spark, les transformations et les actions réalisées sur les RDD permettent de construire un graphe acyclique orienté (DAG : "directed acyclic graph"). Les nœuds sont les RDD et les résultats. Les connexions entre les nœuds sont soit des transformations, soit des actions. Ces connexions sont orientées car elles ne permettent de passer d'un RDD à un autre que dans un sens. Le graphe est dit acyclique car aucun RDD ne permet de se transformer en lui- même via une série d'actions. Lorsqu'un nœud devient indisponible, à cause d'une malfonction quelconque, il peut être régénéré à partir de ses nœuds parents. C'est précisément ce qui permet la tolérance aux pannes des applications Spark. Tasnim Abar 13 Structure de données Spark : RDD - Core Concept of Spark Tasnim Abar 14 Structure de données Spark : RDD - Core Concept of Spark Tasnim Abar 15 Structure de données Spark : DataFrame Un DataFrame est un Dataset organisé en colonnes nommées. Il est conceptuellement équivalent à une table dans une base de données relationnelle ou à un bloc de données en R/Python, mais avec des optimisations plus riches sous le capot. Les DataFrames peuvent être construits à partir d'un large éventail de sources telles que : des fichiers de données structurées, des tables dans Hive, des bases de données externes ou des RDD existants. L'API DataFrame est disponible en Scala, Java, Python et R. DataFrame est un cas particulier de DataSet DataFrame=Dataset[Row]. Tasnim Abar 16 Structure de données Spark : DataFrame Tasnim Abar 17 Architecture du système Spark Tasnim Abar 18 Architecture du système Spark Spark SQL :  Est le module utilisé dans Spark pour le traitement des données structurées. Dans les applications Spark.  On peut utiliser de manière transparente des instructions SQL ou des API DataFrame pour interroger des données structurées. Tasnim Abar 19 Architecture du système Spark Structured Streaming :  Est un moteur de traitement de données en streaming basé sur le moteur Spark SQL.  Permet de compiler un processus de streaming informatique comme l'utilisation de données RDD statiques.  Lorsque les données de streaming sont générées en continu, Spark SQL traite les données de manière incrémentielle et continue, et met à jour les résultats dans l'ensemble de résultats. Tasnim Abar 20 Architecture du système Spark Tasnim Abar 21 Architecture du système Spark Spark Streaming :  Le principe de base de Spark Streaming consiste à diviser les flux de données d'entrée en temps réel par tranche de temps (en secondes).  Puis utiliser le moteur Spark pour traiter les données de chaque tranche de temps d'une manière similaire au traitement par lots. Tasnim Abar 22 Quiz What are the features of Spark?  light  fast  flexible  Smart What are the most advantages of Spark in comparison with MapReduce?  Handle offline tasks  In-memory fast computing  Parallel computing  None of them Tasnim Abar 23 Quiz What are the application scenarios of Spark?  Offline batch processing  real-time stream processing  interactive query  Machine learning Which module is the core module of Spark?  RDD  Spark streaming  Spark sql  Graph X Tasnim Abar 24 Quiz What is Spark's own resource management framework?  Standalone  Mesos  YARN  Docker Regarding RDD, which of the following statement is error?  RDD has lineage mechanism  RDD is stored on disk by default  RD is a read-only, partitionable distributed data set  RD is Spark's abstraction of basic data Tasnim Abar 25 Quiz RDD has Transformation and Action operators. Which of the following is an Action operator?  map  saveASTexFile  Filter  Reducebykey What does RDD dependency types include?  Wide dependency  Narrow dependency  Long dependency  Short dependency Tasnim Abar 26

Use Quizgecko on...
Browser
Browser