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 (en version Preview) 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 :

  1. 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.
  2. 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.
  3. Spark Streaming permet de créer facilement des solutions de traitement en flux continu 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.
  4. 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.
  5. 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 ce 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 pour une utilisation plus simple.



É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, ce qui permet d'accélérer le développement et le temps de mise sur le marché. 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.

Exécuter Apache Spark sur Google Cloud

Optimisez votre expérience Spark avec Google Cloud

  • Google Cloud Serverless pour Apache Spark : pour une expérience sans aucune opération, exécutez vos jobs Spark sans gérer de clusters. Profitez d'un démarrage quasi instantané, du scaling automatique et de l'amélioration des performances apportées par Lightning Engine et Gemini. Idéal pour l'ETL, la science des données et l'analyse interactive, en particulier lorsqu'il est intégré à BigQuery.
  • Dataproc : si vous avez besoin de plus de contrôle sur votre environnement de cluster ou de composants spécifiques de l'écosystème Hadoop en plus de Spark, Dataproc fournit un service entièrement géré. Dataproc simplifie la création et la gestion des clusters, et profite également des améliorations apportées à Lightning Engine pour améliorer les performances de Spark.
  • Un écosystème unifié et ouvert : l'exécution de Spark sur Google Cloud permet une intégration parfaite avec des services tels que BigQuery pour l'analyse unifiée, Vertex AI pour le MLOps, BigLake Metastore pour le partage de métadonnées ouvert et Dataplex Universal Catalog pour une gouvernance complète des données, le tout dans une architecture de lakehouse ouverte.

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