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.
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 :
- API de Spark Scala
- API de Spark Java
- API de Spark Python
- API de Spark R
- API de Spark SQL, fonctions intégrées
É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#.