Qu’est-ce qu’Apache Spark ?

Apache Spark est une infrastructure de traitement parallèle open source qui prend en charge le traitement en mémoire pour améliorer les performances des applications qui analysent le Big Data. Les solutions Big Data sont conçues pour gérer les données trop volumineuses ou complexes pour les bases de données traditionnelles. Spark traite de grandes quantités de données en mémoire, ce qui est beaucoup plus rapide que les alternatives sur disque.

Scénarios Big Data courants

Vous pouvez envisager une architecture Big Data si vous devez stocker et traiter de grands volumes de données, transformer des données non structurées ou traiter des données de diffusion en continu. Spark est un moteur de traitement distribué à usage général qui peut être utilisé pour plusieurs scénarios Big Data.

Extraire, transformer et charger (ETL)

Extraire, transformer et charger (ETL) est le processus de collecte de données à partir d’une ou plusieurs sources, de modification des données et de déplacement des données vers un nouveau magasin de données. Il existe plusieurs façons de transformer des données, notamment :

  • Filtrage
  • Tri
  • Agrégation
  • Jonction
  • Nettoyage
  • Déduplication
  • Validation

Traitement du flux de données en temps réel

Les données de diffusion en continu ou les données en temps réel désignent des données en mouvement. Les données de télémétrie provenant d’appareils IoT, de weblogs et de flux de clics sont tous des exemples de données de diffusion en continu. Les données en temps réel peuvent être traitées pour fournir des informations utiles, telles que l’analyse géospatiale, le monitoring à distance et la détection d’anomalie. Tout comme les données relationnelles, vous pouvez filtrer, agréger et préparer des données de diffusion en continu avant de déplacer les données vers un récepteur de sortie. Apache Spark prend en charge le traitement en temps réel du flux de données par le biais de Spark Streaming.

Traitement par lots

Le traitement par lots est le traitement du Big Data au repos. Vous pouvez filtrer, agréger et préparer des jeux de données très volumineux à l’aide de travaux de longue durée en parallèle.

Machine Learning via MLlib

Le Machine Learning est utilisé pour les problèmes analytiques avancés. Votre ordinateur peut utiliser des données existantes pour prévoir ou prédire les comportements, résultats et tendances futurs. La bibliothèque Machine Learning d’Apache Spark, MLlib, contient plusieurs algorithmes et utilitaires de Machine Learning.

Traitement de graphique via GraphX

Un graphique est une collection de nœuds connectés par des bords. Vous pouvez utiliser une base de données de graphique si vous avez des données hiérarchiques ou des données avec des relations interconnectées. Vous pouvez traiter ces données à l’aide de l’API GraphX d’Apache Spark.

Traitement SQL et structuré des données avec Spark SQL

Si vous utilisez des données structurées (mises en forme), vous pouvez utiliser des requêtes SQL dans votre application Spark à l’aide de Spark SQL.

Architecture d’Apache Spark

Apache Spark a trois composants principaux : le pilote, les exécuteurs et le gestionnaire de cluster. Les applications Spark s’exécutent en tant qu’ensembles indépendants de processus sur un cluster, coordonnés par le programme de pilotes.

Architecture d’Apache Spark

Pour plus d’informations, consultez la vue d’ensemble du mode cluster.

Pilote

Le pilote se compose de votre programme, comme une application console C#, et d’une session Spark. La session Spark prend votre programme et le divise en tâches plus petites gérées par les exécuteurs.

Exécuteurs

Chaque exécuteur, ou nœud Worker, reçoit une tâche du pilote et exécute cette tâche. Les exécuteurs résident sur une entité appelée cluster.

Gestionnaire de cluster

Le gestionnaire de cluster communique avec le pilote et les exécuteurs pour :

  • Gérer l’allocation de ressources
  • Gérer la division du programme
  • Gérer l’exécution du programme

Support multilingue

Apache Spark prend en charge les langages de programmation suivants :

  • Scala
  • Python
  • Java
  • SQL
  • R
  • Langages .NET (C#/F#)

API Spark

Apache Spark prend en charge les API suivantes :

Étapes suivantes

Découvrez comment utiliser Apache Spark dans votre application .NET. Avec .NET pour Apache Spark, les développeurs disposant d’une expérience de .NET et d’une logique métier peuvent écrire des requêtes Big Data en C# et F#.