Accéder à

Qu'est-ce que 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 par flux, le machine learning et le traitement graphique. Spark peut être exécuté sur Apache Hadoop, Apache Mesos et Kubernetes, de façon indépendante ou dans le cloud. Par ailleurs, il peut s'appliquer à des sources de données diverses.

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 utiliser Dataproc pour exécuter des clusters Apache Spark sur Google Cloud de manière plus simple, plus économique et intégrée.

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, 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 Core constitue la base d'un projet entier et fournit les fonctionnalités d'E/S de base, de coordination de tâches distribuées et de planification.

2. Spark SQL est le module Spark conçu pour les données structurées. Il offre un moyen uniforme d'accéder à des sources de données très diverses. 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. Un mode serveur fournit une connectivité standard à travers Java Database Connectivity (JDBC) ou Open Database Connectivity (ODBC).

3. 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 tâches de traitement par flux de la même façon que des tâches par lot. 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 d'apprentissage 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.

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. En plus de fournir une API hautement flexible, GraphX inclut toute une variété d'algorithmes de graphe et offre des performances comparables à celles des systèmes graphiques les plus rapides, sans renoncer à la flexibilité, la tolérance aux pannes et la simplicité d'utilisation de Spark.

Quels sont les avantages d'Apache Spark ?

Rapidité

Vous pouvez exécuter des charges de travail 100 fois plus rapidement qu'avec Hadoop MapReduce. Spark offre de hautes performances aussi bien avec les données par lot qu'avec les flux de données, grâce à un planificateur de graphes orientés acycliques de pointe, un optimiseur de requêtes et un moteur d'exécution physique.

Simplicité d'utilisation

Spark offre plus de 80 opérateurs de haut niveau qui facilitent la création d'applications parallèles. Vous pouvez l'utiliser de manière interactive avec des interfaces système Scala, Python, R et SQL pour écrire rapidement des applications.

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 s'appuie sur des communautés mondiales qui unissent leurs forces pour introduire de nouveaux concepts et fonctionnalités plus rapidement et plus efficacement que les équipes internes qui travaillent sur des solutions propriétaires. Le pouvoir de collaboration d'une communauté Open Source permet non seulement de générer plus d'idées, mais également d'accélérer le développement et de résoudre plus rapidement les éventuels problèmes, ce qui se traduit par un temps de production plus court.

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.

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.

Ingénieurs de données

Les ingénieurs de données utilisent Spark pour coder et créer des tâches de traitement de données, avec la possibilité de programmer dans un ensemble de langages étendu.

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.

Dataproc est un service cloud rapide, facile à utiliser et entièrement géré qui permet d'exécuter des clusters Apache Spark et Apache Hadoop de manière plus simple, plus économique et intégrée. Il s'intègre parfaitement à d'autres services Google Cloud qui répondent aux besoins critiques en matière de sécurité, de gouvernance et d'assistance, en vous permettant d'accéder à une plate-forme complète et puissante pour le traitement, l'analyse et le machine learning.

Les outils d'analyse du big data de Google Cloud, tels que BigQuery, Notebooks et Dataflow, vous permettent de créer des applications qui tiennent compte du contexte, de concevoir de nouvelles solutions d'analyse et de transformer les données en insights exploitables.