Spark est un moteur d'analyse distribué conçu pour les charges de travail Big Data. Il combine la mise en cache en mémoire et un moteur d'exécution basé sur un graphe acyclique dirigé (DAG) pour offrir des performances élevées lors du traitement par lots, des requêtes interactives et du streaming en temps réel.
Architecture
Spark Core constitue le socle de la plateforme Spark. Quatre bibliothèques spécialisées s'appuient dessus :
Spark SQL : prend en charge l'extraction, la transformation et le chargement (ETL) hors ligne ainsi que le traitement analytique en ligne (OLAP)
Spark Streaming : prend en charge le traitement des flux en temps réel
MLlib : prend en charge les charges de travail d'apprentissage automatique
-
GraphX : prend en charge le calcul de graphes
Pour consulter la référence complète des bibliothèques, rendez-vous sur le site officiel d'Apache Spark.
Scénarios
-
ETL hors ligne
L'ETL hors ligne couvre les scénarios d'entreposage de données où de grands volumes de données sont extraits, transformés et chargés en bloc. Ces tâches s'exécutent généralement selon une planification plutôt qu'à la demande. Le traitement en mémoire de Spark et son optimisation basée sur les DAG le rendent particulièrement adapté aux pipelines ETL par lots à grande échelle.
-
OLAP
L'OLAP concerne les scénarios de business intelligence (BI) dans lesquels les analystes soumettent des requêtes interactives et attendent des résultats rapides. Parmi les moteurs OLAP courants figurent Presto, Impala et Spark. Choisissez Spark lorsque vos requêtes impliquent des transformations complexes ou si vous avez besoin d'un moteur unique capable de gérer les charges de travail ETL et ML sur le même cluster. Les principales fonctionnalités de Spark 3.0 sont prises en charge dans E-MapReduce (EMR) Spark 2.4. Pour plus d'informations, consultez le guide Spark SQL.
-
Traitement des flux
Le traitement des flux couvre les scénarios de données en temps réel tels que les mises à jour de tableaux de bord, la gestion des risques, les recommandations, la surveillance et les alertes. Deux moteurs courants s'exécutent sur EMR : Spark Streaming et Flink. Spark Streaming propose deux API : DStream et Structured Streaming. Structured Streaming utilise le même modèle DataFrame que les tâches par lots, ce qui facilite son apprentissage. Utilisez Flink lorsque votre charge de travail nécessite la latence de bout en bout la plus faible possible. Privilégiez Spark Streaming lorsque vous avez besoin d'un débit plus élevé. Pour plus d'informations, consultez le guide de programmation Structured Streaming.
-
Apprentissage automatique
MLlib est une bibliothèque d'apprentissage automatique évolutive intégrée à Spark. Elle inclut des algorithmes de classification, de régression, de filtrage collaboratif et d'agrégation, ainsi que des outils pour la sélection de modèles, le réglage automatique des hyperparamètres et la validation croisée. MLlib se concentre sur les algorithmes autres que l'apprentissage profond et s'intègre directement au modèle de données distribué de Spark, sans nécessiter de cluster d'entraînement séparé. Pour plus d'informations, consultez le guide de la bibliothèque d'apprentissage automatique (MLlib).
-
Calcul de graphes
GraphX est la bibliothèque de calcul de graphes de Spark. Elle prend en charge les opérateurs de propriétés, les opérateurs structurels, les opérateurs de jointure et les opérateurs d'agrégation de voisinage, couvrant ainsi la plupart des charges de travail d'analytique graphique sans nécessiter de base de données graphique dédiée. Pour plus d'informations, consultez le guide de programmation GraphX.