Catégorie

Définition

Catégorie

Qu’est-ce qu’Apache Spark ?

Apache Spark est un cadre de traitement parallèle open source permettant d’exécuter des applications d’analyse de données à grande échelle sur des ordinateurs en grappe. Il peut gérer des charges de travail d’analyse et de traitement des données en mode batch et en temps réel.

Spark est devenu un projet de haut niveau de l’Apache Software Foundation en février 2014, et la version 1.0 d’Apache Spark a été publiée en mai 2014. La version 2.0 de Spark a été publiée en juillet 2016.

La technologie a été initialement conçue en 2009 par des chercheurs de l’Université de Californie, Berkeley, comme un moyen d’accélérer les travaux de traitement dans les systèmes Hadoop.

Spark Core, le cœur du projet qui fournit des fonctionnalités de transmission de tâches distribuées, d’ordonnancement et d’E/S fournit aux programmeurs une alternative potentiellement plus rapide et plus flexible à MapReduce, le cadre logiciel auquel les premières versions d’Hadoop étaient liées. Les développeurs de Spark affirment qu’il peut exécuter des tâches 100 fois plus vite que MapReduce lorsqu’elles sont traitées en mémoire, et 10 fois plus vite sur disque.

Comment fonctionne Apache Spark

Apache Spark peut traiter des données provenant de divers référentiels de données, notamment le système de fichiers distribués Hadoop (HDFS), les bases de données NoSQL et les magasins de données relationnelles, tels qu’Apache Hive. Spark prend en charge le traitement en mémoire pour améliorer les performances des applications d’analyse de données volumineuses, mais il peut également effectuer un traitement classique sur disque lorsque les ensembles de données sont trop volumineux pour tenir dans la mémoire système disponible.

Le moteur Spark Core utilise l’ensemble de données distribuées résilientes, ou RDD, comme type de données de base. Le RDD est conçu de manière à cacher une grande partie de la complexité de calcul aux utilisateurs. Il regroupe les données et les répartit sur un cluster de serveurs, où elles peuvent ensuite être calculées et déplacées vers un autre magasin de données ou exécutées par un modèle analytique. L’utilisateur n’a pas à définir où des fichiers spécifiques sont envoyés ou quelles ressources informatiques sont utilisées pour stocker ou récupérer des fichiers.

En outre, Spark peut gérer plus que les applications de traitement par lots que MapReduce est limité à exécuter.

Bibliothèques Spark

Le moteur Spark Core fonctionne en partie comme une couche d’interface de programmation d’applications (API) et sous-tend un ensemble d’outils connexes pour la gestion et l’analyse des données. Outre le moteur de traitement Spark Core, l’environnement Apache Spark API est fourni avec certaines bibliothèques de code à utiliser dans les applications d’analyse de données. Ces bibliothèques comprennent les éléments suivants :

  • Spark SQL — L’une des bibliothèques les plus couramment utilisées, Spark SQL permet aux utilisateurs d’interroger des données stockées dans des applications disparates à l’aide du langage SQL commun.
  • Spark Streaming — Cette bibliothèque permet aux utilisateurs de créer des applications qui analysent et présentent des données en temps réel.
  • MLlib — Une bibliothèque de code d’apprentissage automatique qui permet aux utilisateurs d’appliquer des opérations statistiques avancées aux données de leur cluster Spark et de créer des applications autour de ces analyses.
  • GraphX — Une bibliothèque intégrée d’algorithmes pour le calcul parallèle de graphes.

Langages Spark

Spark a été codé en Scala, qui est considéré comme le langage principal pour interagir avec le moteur Spark Core. Spark est également livré avec des connecteurs API permettant d’utiliser Java et Python. Java n’est pas considéré comme un langage optimal pour l’ingénierie ou la science des données, c’est pourquoi de nombreux utilisateurs utilisent Python, qui est plus simple et plus orienté vers l’analyse des données.

Il existe également un progiciel R que les utilisateurs peuvent télécharger et exécuter dans Spark. Cela permet aux utilisateurs d’exécuter le langage populaire de science des données de bureau sur de plus grands ensembles de données distribuées dans Spark et de l’utiliser pour créer des applications qui exploitent des algorithmes d’apprentissage automatique.

Cas d’utilisation d’Apache Spark

Le large éventail de bibliothèques Spark et sa capacité à calculer des données à partir de nombreux types de magasins de données différents signifient que Spark peut être appliqué à de nombreux problèmes différents dans de nombreux secteurs. Les entreprises de publicité numérique l’utilisent pour gérer des bases de données sur l’activité web et concevoir des campagnes adaptées à des consommateurs spécifiques. Les sociétés financières l’utilisent pour ingérer des données financières et exécuter des modèles pour guider les activités d’investissement. Les entreprises de biens de consommation l’utilisent pour regrouper les données relatives aux clients et prévoir les tendances afin d’orienter les décisions relatives aux stocks et de repérer les nouvelles opportunités de marché.

Les grandes entreprises qui travaillent avec des applications big data utilisent Spark en raison de sa vitesse et de sa capacité à relier plusieurs types de bases de données et à exécuter différents types d’applications analytiques. À l’heure actuelle, Spark est la plus grande communauté open source dans le domaine du big data, avec plus de 1 000 contributeurs issus de plus de 250 organisations.