Qu'est-ce qu'Apache Spark ?

Apache Spark est un moteur d'analyse unifié conçu pour le traitement des données à grande échelle avec des modules intégrés pour SQL, le traitement en flux continu, le machine learning et le traitement graphique. Spark peut être exécuté sur Apache Hadoop, Kubernetes, de façon indépendante ou dans le cloud. Par ailleurs, il peut s'appliquer à des sources de données diverses. Il fournit des API riches en Java, Scala, Python et R, ce qui le rend accessible à un large éventail de développeurs et de data scientists. Son API Python, PySpark, s'intègre également bien avec des bibliothèques populaires comme Pandas pour la manipulation des données. Sur Google Cloud, Apache Spark est porté à un niveau supérieur grâce à des options sans serveur, des améliorations révolutionnaires des performances comme Lightning Engine et des intégrations approfondies dans une plate-forme unifiée de données et d'IA.

Quand utiliser Apache Spark et quand utiliser Apache Hadoop ? Les deux figurent parmi les systèmes distribués les plus importants du marché à l'heure actuelle. Il s'agit de projets Apache de niveau supérieur similaires qui sont souvent utilisés ensemble. Hadoop est principalement utilisé pour les opérations gourmandes en disque dur avec le paradigme MapReduce. Spark est une architecture de traitement en mémoire plus flexible et généralement plus coûteuse. Il est important de bien comprendre les caractéristiques de chacun de ces systèmes pour savoir lequel mettre en œuvre et quand.

Découvrez comment Google Cloud vous permet d'exécuter des charges de travail Apache Spark de manière plus simple, plus économique et plus intégrée. Vous pouvez exploiter Google Cloud Serverless pour Apache Spark pour un développement sans opérations ou utiliser Dataproc pour des clusters Spark gérés.

Présentation d'Apache Spark

L'écosystème Spark inclut cinq composants clés :

  • Spark Core est un moteur de traitement de données distribué à usage général. Il s'agit du moteur d'exécution de base, qui gère la planification, la distribution des tâches et les E/S de base. Spark Core a introduit le concept d'ensembles de données distribués résilients (RDD), des collections d'objets distribués immuables qui peuvent être traitées en parallèle avec tolérance aux pannes, sur lequel sont installées des bibliothèques pour SQL, le traitement par flux, le machine learning et le calcul graphique, qui peuvent toutes être utilisées ensemble dans une application.


  • Spark SQL est le module Spark conçu pour les données structurées. Il a introduit les DataFrames, qui fournissent une API plus optimisée et plus conviviale que les RDD pour la manipulation de données structurées. Il vous permet d'interroger des données structurées dans des programmes Spark à l'aide de SQL ou d'une API DataFrame familière. Spark SQL est compatible avec la syntaxe HiveQL et permet d'accéder à des entrepôts Apache Hive existants. Google Cloud améliore encore les performances des jobs Spark, en particulier pour les opérations SQL et DataFrame, grâce à des innovations telles que Lightning Engine. Vous bénéficiez ainsi d'une accélération significative de vos requêtes et de vos tâches de traitement des données lorsque vous exécutez Spark sur Google Cloud.


  • Spark Streaming permet de créer facilement des solutions de traitement par flux tolérantes aux pannes et évolutives. Il intègre l'API avec langage intégré Spark au traitement par flux, ce qui vous permet d'écrire des jobs de traitement par flux de la même façon que des jobs par lot, en utilisant des flux de données ou la nouvelle API Structured Streaming basée sur des cadres de données. Spark Streaming est compatible avec Java, Scala et Python, et inclut une sémantique prête à l'emploi de type "exactement une fois" et avec état.


  • MLlib est la bibliothèque de machine learning (ML) évolutive de Spark, avec des outils qui facilitent le ML et permettent de l'adapter. MLlib contient de nombreux algorithmes de machine learning courants, par exemple de classification, de régression, de recommandation et de clustering. Elle contient également un workflow et des utilitaires de transformation de caractéristiques, de création de pipelines de ML, d'évaluation de modèles, d'algèbre linéaire distribué et de statistiques, entre autres. En combinant Vertex AI de Google Cloud aux workflows Spark MLlib, vous pouvez intégrer facilement ces workflows aux pipelines MLOps. Vous pouvez également améliorer le développement en utilisant Gemini pour le codage et le dépannage.


  • GraphX est l'API Spark pour les graphes et le calcul parallèle de graphes. Flexible et compatible aussi bien avec les graphes que les collections, elle unifie l'ETL (extraction, transformation et chargement), l'analyse exploratoire et le calcul graphique itératif dans un même système.

Google Cloud fournit un environnement optimisé pour tous ces composants. Par exemple, Lightning Engine booste les performances de Spark et DataFrame, tandis que Google Cloud Serverless pour Apache Spark simplifie le déploiement et la gestion. De son côté, Gemini améliore la productivité des développeurs dans les environnements de notebook tels que BigQuery Studio et Vertex AI Workbench.

Fonctionnement d'Apache Spark

La puissance d'Apache Spark repose sur quelques principes architecturaux fondamentaux :

  • Traitement en mémoire : Spark charge les données en mémoire, ce qui accélère considérablement les algorithmes itératifs et les requêtes interactives par rapport aux systèmes basés sur disque.
  • Exécution distribuée : s'exécute sur un cluster de machines. Un programme de pilote coordonne les exécuteurs (processus de nœud de calcul) qui exécutent des tâches en parallèle sur différentes partitions de données.
  • RDD et DataFrames : les ensembles de données distribués résilients (RDD) sont l'abstraction de données de base avec tolérance aux fautes. Les DataFrames, qui reposent sur des RDD, fournissent une API plus riche et compatible avec les schémas pour les données structurées, ce qui permet des optimisations via l'optimiseur Catalyst.
  • Évaluation paresseuse et DAG : Spark crée un graphe orienté acyclique (DAG) d'opérations. Les transformations sont "paresseuses" (elles ne sont pas calculées immédiatement), ce qui permet à Spark d'optimiser l'intégralité du workflow avant qu'une "action" ne déclenche l'exécution.

Quels sont les avantages d'Apache Spark ?

Rapidité

Le traitement en mémoire et le planificateur DAG de Spark permettent d'exécuter des charges de travail plus rapidement qu'Hadoop MapReduce, en particulier pour les tâches itératives. Google Cloud accélère encore le processus grâce à une infrastructure optimisée et à Lightning Engine.

Simplicité d'utilisation

Les opérateurs de haut niveau de Spark simplifient la création d'applications parallèles. L'utilisation interactive de Scala, Python, R et SQL permet un développement rapide. Google Cloud offre des options sans serveur et des notebooks intégrés avec Gemini.



Évolutivité

Spark offre une évolutivité horizontale, en traitant de grandes quantités de données en distribuant le travail sur les nœuds du cluster. Google Cloud simplifie l'évolutivité grâce à l'autoscaling sans serveur et aux clusters Dataproc flexibles.

Portée générale

Spark fournit une pile de bibliothèques, telles que SQL et DataFrames, MLlib pour le machine learning, GraphX et Spark Streaming. Vous pouvez facilement les combiner dans une même application.

Innovation du framework Open Source

Spark exploite le pouvoir des communautés Open Source pour innover et résoudre les problèmes rapidement. Google Cloud adopte cet esprit d'ouverture en proposant Apache Spark standard tout en améliorant ses fonctionnalités.

Pourquoi préférer Spark à un moteur uniquement SQL ?

Apache Spark est un moteur de calcul en clusters rapide et à usage général qui peut être déployé dans un cluster Hadoop ou en mode autonome. Spark permet aux programmeurs d'écrire rapidement des applications dans Java, Scala, Python, R et SQL, ce qui en fait une solution accessible aux développeurs, aux data scientists et aux experts commerciaux avec des connaissances en statistiques. Spark SQL permet aux utilisateurs de se connecter à une source de données quelconque et de la présenter sous forme de tables destinées aux clients SQL. Les algorithmes de machine learning interactif peuvent en outre être facilement mis en œuvre dans Spark.

Avec un moteur uniquement SQL tel que Apache Impala, Apache Hive ou Apache Drill, les utilisateurs ne peuvent utiliser que le langage SQL ou des langages de type SQL pour interroger des données stockées dans plusieurs bases de données. Cela signifie que les frameworks sont plus petits qu'avec Spark. Toutefois, sur Google Cloud, vous n'avez pas à faire un choix strict. BigQuery offre des fonctionnalités SQL puissantes, Google Cloud Serverless pour Apache Spark et Dataproc pour un service Spark et Hadoop géré vous permettent d'utiliser la polyvalence de Spark, souvent sur les mêmes données via BigLake Metastore et les formats ouverts.

Comment les entreprises utilisent-elles Spark ?

De nombreuses entreprises utilisent Spark pour simplifier la tâche complexe (et gourmande en ressources de calcul) de traitement et d'analyse d'importants volumes de données structurées et non structurées, en temps réel ou archivées. Spark permet également aux utilisateurs d'intégrer facilement des fonctionnalités complexes pertinentes, telles que le machine learning ou les algorithmes de graphe. Voici quelques exemples d'applications courantes :

  • ETL/ELT à grande échelle
  • Traitement des données en temps réel
  • Machine learning
  • Exploration interactive des données
  • Analyse de graph

Ingénieurs de données

Les ingénieurs de données utilisent Spark pour coder et créer des tâches de traitement, avec la possibilité de programmer dans un jeu de langue étendu. Sur Google Cloud, les ingénieurs de données peuvent exploiter Google Cloud Serverless pour Apache Spark afin de créer des pipelines ETL/ELT sans aucune opération, ou utiliser Dataproc pour contrôler des clusters gérés, le tout intégré à des services tels que BigQuery et Dataplex Universal Catalog pour la gouvernance.

Data scientists

Les data scientists peuvent optimiser leur expérience d'analyse et de ML en utilisant Spark avec des GPU. La capacité à traiter plus rapidement d'importants volumes de données avec un langage familier peut permettre d'accélérer l'innovation. Google Cloud offre une prise en charge robuste des GPU pour Spark et une intégration parfaite avec Vertex AI, ce qui permet aux data scientists de créer et de déployer des modèles plus rapidement. Ils peuvent exploiter différents environnements de notebook, comme BigQuery Studio et Vertex AI Workbench, ou connecter leurs IDE préférés, tels que Jupyter et VS Code. Cette expérience de développement flexible, combinée à Gemini, permet d'accélérer le workflow, de l'exploration initiale au déploiement en production.

Il existe une meilleure façon d'utiliser Spark sur Google Cloud

Google Cloud résout les problèmes courants liés à l'exécution de Spark à grande échelle, ce qui vous permet de vous concentrer sur les insights plutôt que sur l'infrastructure.

Plus facile

Éliminez la charge opérationnelle et les coûts liés au réglage grâce aux options Dataproc et Serverless pour Apache Spark entièrement gérées qui automatisent le provisionnement et le scaling.

Plus intelligent

Exploitez la puissance de Gemini pour vous aider tout au long du cycle de vie des développeurs Spark, du développement au déploiement, en passant par la surveillance et le dépannage, le tout sur une plate-forme de données unifiée prête pour le lakehouse.

Plus rapide

Profitez de performances Spark de pointe et réalisez des économies grâce à Lightning Engine, notre moteur nouvelle génération qui accélère les jobs Spark sans nécessiter de réglages manuels.

Passez à l'étape suivante

Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.

  • Faites des économies grâce à notre approche transparente concernant la tarification
  • Le paiement à l'usage de Google Cloud permet de réaliser des économies automatiques basées sur votre utilisation mensuelle et des tarifs réduits pour les ressources prépayées. Contactez-nous dès aujourd'hui afin d'obtenir un devis.
Google Cloud