Introuction au Apache Spark cours pdf

Partie 2 – Introduction à Apache Spark

 

 

Apache Spark – Présentation

Apache Spark est une plateforme de traitement sur cluster générique. C’est un moteur de traitement libre, assurant un traitement parallèle et distribué sur des données massives. Il fournit une API de développement pour permettre un traitement en streaming, l’apprentissage automatique ou la gestion de requêtes SQL et demandant des accès répétés sur un grand volume de données. 1

Apache Spark permet de réaliser des traitements par lot (batch processing) ou à la volée (stream processing) et est conçu de façon à pouvoir intégrer tous les outils et technologies Big Data. Par exemple, non seulement Spark peut-il accéder aux sources de données de Hadoop, il peut également tourner sur un cluster Hadoop. Étant donné que Spark n’offre pas de solution de stockage (pas encore en tout cas), il est logique qu’il puisse profiter de la puissance de HDFS (le système de fichiers de Hadoop), tout en offrant lui des performances inégalées pour le traitement en batch, ainsi que d’autres facilités (non offertes par Hadoop Map Reduce) telles que le traitement itératif, interactif et à la volée.

Spark offre des APIs de haut niveau en Java, Scala, Python et R. Il utilise le traitement en mémoire (in-memory processing), en exploitant les ressources combinées du cluster comme si c’était une machine unique.

Apache Spark a été créé en 2009 au laboratoire UC Berkeley R&D Lab (appelé maintenant AMPLab), et est devenu open-source en 2010 avec une licence BSD. En 2013, il a intégré Apache Software Foundation, pour devenir, en 2014, un projet Apache de haut niveau.

Apache Spark – Composants

Apache Spark utilise une architecture en couches, comportant plusieurs composants, dont l’objectif est de permettre de réaliser des traitements performants tout en promettant un développement et une intégration facilitées. Il est né à la base pour pallier les problèmes posés par Hadoop Map Reduce, mais est devenu une entité à lui seul, offrant bien plus que le traitement par lot classique. 1

Voici les composants de Spark:

 

 

 
  1. Spark Core
    Spark Core est le point central de Spark, qui fournit une plateforme d’exécution pour toutes les applications Spark. De plus, il supporte un large éventail d’applications.
  2. Spark SQL
    Spark SQL se situe au dessus de Spark, pour permettre aux utilisateurs d’utiliser des requêtes SQL/HQL. Les données structurées et semi-structurées peuvent ainsi être traitées grâce à Spark SQL, avec une performance améliorée.
  3. Spark Streaming
    Spark Streaming permet de créer des applications d’analyse de données interactives. Les flux de données sont transformés en micro-lots et traités par dessus Spark Core.
  4. Spark MLlib
    La bibliothèque de machine learning MLlib fournit des algorithmes de haute qualité pour l’apprentissage automatique. Ce sont des libraries riches, très utiles pour les data scientists, autorisant de plus des traitements en mémoire améliorant de façon drastique la performance de ces algorithmes sur des données massives.
  5. Spark GraphX
    Spark Graphx est le moteur d’exécution permettant un traitement scalable utilisant les graphes, se basant sur Spark Core.

Architecture de Spark

Les applications Spark s’exécutent comme un ensemble indépendant de processus sur un cluster, coordonnés par un objet SparkContext dans le programme principal, appelé driver program2

Pour s’exécuter sur un cluster, SparkContext peut se connecter à plusieurs types de gestionnaires de clusters (Cluster Managers):

Ces gestionnaires permettent d’allouer les ressources nécessaires pour l’exécution de plusieurs applications Spark. Une fois connecté, Spark lance des exécuteurs sur les noeuds du cluster, qui sont des processus qui lancent des traitements et stockent des données pour les applications. Il envoie ensuite le code de l’application (dans un fichier JAR ou Python) aux exécuteursSpark Context envoie finalement les tâches à exécuter aux exécuteurs.

 

 

Il est à noter que:

Caractéristiques de Spark

Spark est connu pour avoir plusieurs caractéristiques qui en font l’une des plateformes les plus utilisées dans le domaine des Big Data. Nous citons: 1

Limitations de Spark

Spark a plusieurs limitations, tel que : 1

Télécharger en PDF


 

Quitter la version mobile