Présentation d’Apache Spark dans Azure HDInsight

Apache Spark est un framework de traitement parallèle qui prend en charge le traitement en mémoire pour améliorer les performances des applications d’analytique du Big Data. Apache Spark dans Azure HDInsight est l’implémentation Microsoft d’Apache Spark dans le cloud et est l’une des nombreuses offres Spark dans Azure.

  • Apache Spark dans Azure HDInsight facilite la création et la configuration de clusters Spark, ce qui vous permet de personnaliser et d’utiliser un environnement Spark complet dans Azure.

  • Les pools Spark dans Azure Synapse Analytics utilisent des pools Spark managés pour permettre le chargement, la modélisation, le traitement et la distribution des données pour les analyses dans Azure.

  • Apache Spark sur Azure Databricks utilise des clusters Spark pour fournir un espace de travail interactif qui permet la collaboration entre vos utilisateurs et la lecture de données à partir de plusieurs sources de données et les transforment en informations exploitables.

  • Les activités Spark dans Azure Data Factory vous permettent d’utiliser des analyses Spark dans votre pipeline de données, à l’aide de clusters Spark à la demande ou préexistants.

Avec Apache Spark dans Azure HDInsight, vous pouvez stocker et traiter vos données dans Azure. Les clusters Spark dans HDInsight sont compatibles avec le Stockage Blob Azure, Azure Data Lake Storage Gen1 ou Azure Data Lake Storage Gen2, ce qui vous permet d’appliquer le traitement Spark à vos magasins de données.

Spark: a unified framework

Pour commencer à utiliser Apache Spark dans Azure HDInsight, suivez notre tutoriel pour créer des clusters HDInsight Spark.

Pour plus d’informations sur Apache Spark et sur la manière dont il interagit avec Azure, poursuivez votre lecture de l’article ci-dessous.

Pour obtenir des informations sur les composants et le contrôle de version, consultez Composants et versions Apache Hadoop dans Azure HDInsight.

Qu’est-ce qu’Apache Spark ?

Spark fournit des primitives pour le calcul de cluster en mémoire. Un travail Spark peut charger et mettre en cache des données en mémoire et les interroger à plusieurs reprises. Le calcul en mémoire est beaucoup plus rapide que les applications sur disque, notamment Hadoop, qui partage des données par le biais du système de fichiers DFS hadoop (HDFS). Spark s’intègre également dans le langage de programmation Scala pour vous permettre de manipuler des ensembles de données distribuées tels que des collections locales. Il n’est pas nécessaire de tout structurer comme des opérations de réduction et de mappage.

Traditional MapReduce vs. Spark

Les clusters Spark dans HDInsight constituent un service Spark entièrement géré. Voici les avantages des clusters Spark dans HDInsight.

Fonctionnalité Description
Facilité de création La création d’un cluster Spark dans HDInsight prend en quelques minutes avec le Portail Azure, Azure PowerShell ou le Kit de développement logiciel (SDK) .NET HDInsight. Consultez Bien démarrer avec un cluster Apache Spark dans HDInsight.
Simplicité d'utilisation Un cluster Spark sur HDInsight inclut des notebooks Jupyter et des notebooks Apache Zeppelin. Vous pouvez utiliser les blocs-notes pour le traitement interactif et la visualisation des données. Consultez Utiliser des notebooks Apache Zeppelin avec Apache Spark et Charger des données et exécuter des requêtes sur un cluster Apache Spark.
API REST Les clusters Spark dans HDInsight comprennent Apache Livy, un serveur de travaux Spark basé sur une API REST, qui permet de soumettre et de surveiller à distance des travaux. Consultez Utiliser l’API REST Spark Apache pour envoyer des travaux à distance à un cluster Spark HDInsight.
Prise en charge de Stockage Azure Les clusters Spark dans HDInsight peuvent utiliser Azure Data Lake Storage Gen1/Gen2 comme stockage principal ou comme stockage supplémentaire. Pour plus d’informations sur Data Lake Storage Gen1, consultez Azure Data Lake Storage Gen1. Pour plus d’informations sur Data Lake Storage Gen2, consultez Azure Data Lake Storage Gen2.
Intégration aux services Azure Un cluster Spark dans HDInsight s’accompagne d’un connecteur à Azure Event Hubs. Vous pouvez générer des applications de streaming avec Event Hubs, en plus d’Apache Kafka, qui est déjà disponible dans le cadre de Spark.
Intégration à des environnements de développement intégrés tiers HDInsight offre différents plug-ins d’IDE permettant de créer et d’envoyer des applications sur un cluster HDInsight Spark. Pour plus d’informations, consultez Utiliser Azure Toolkit for IntelliJ IDEA, Utiliser Spark & Hive Tools pour VSCode et Utiliser Azure Toolkit for Eclipse.
Requêtes simultanées Les clusters Spark sur HDInsight prennent en charge les requêtes simultanées. Ainsi, plusieurs requêtes d’un même utilisateur ou de différents utilisateurs et applications peuvent partager les mêmes ressources de cluster.
Mise en cache sur des disques SSD Vous pouvez choisir de mettre en cache des données en mémoire ou dans les disques SSD attachés aux nœuds de cluster. Si la mise en cache en mémoire est la stratégie qui offre les meilleures performances de requête, elle peut se révéler coûteuse. La mise en cache sur des disques SSD représente une très bonne option pour améliorer les performances des requêtes sans avoir à créer un cluster de la taille requise pour que l’ensemble du jeu de données puisse être mis en mémoire. Consultez Améliorer les performances des charges de travail Apache Spark à l’aide d’Azure HDInsight IO Cache.
Intégration aux outils décisionnels Les clusters Spark dans HDInsight fournissent des connecteurs pour certains outils décisionnels, notamment Power BI pour l’analytique des données.
Bibliothèques Anaconda préchargées Les clusters Spark dans HDInsight sont fournis avec des bibliothèques Anaconda préinstallées. Anaconda fournit près de 200 bibliothèques pour le machine learning, l’analyse des données, la visualisation, etc.
Adaptabilité HDInsight vous permet de modifier le nombre de nœuds de cluster de manière dynamique à l’aide de la fonctionnalité de mise à l’échelle automatique. Consultez Mettre à l’échelle automatiquement les clusters Azure HDInsight. En outre, les clusters Spark peuvent être supprimés sans perte de données puisque toutes les données sont stockées dans Stockage Blob Azure, Azure Data Lake Storage Gen1 ou Azure Data Lake Storage Gen2.
Contrat SLA Les clusters Spark dans HDInsight s’accompagnent d’un support assuré 24 heures sur 24, 7 jours sur 7 et d’un contrat de niveau de service à 99,9 % de durée de fonctionnement.

Les clusters Apache Spark dans HDInsight incluent les composants suivants qui sont disponibles dans les clusters par défaut.

Les clusters HDInsight Spark utilisent un pilote ODBC pour la connectivité à partir d’outils décisionnels tels que Microsoft Power BI.

Architecture d’un cluster Spark

The architecture of HDInsight Spark

Il est facile de comprendre les composants de Spark si vous comprenez comment fonctionne Spark sur les clusters HDInsight.

Les applications Spark s’exécutent sous la forme d’ensembles de processus indépendants sur un cluster, coordonnés par l’objet SparkContext du programme principal (appelé programme pilote).

SparkContext peut se connecter à plusieurs types de gestionnaires de cluster, qui allouent des ressources aux différentes applications. Ces gestionnaires de cluster incluent Apache Mesos, Apache Hadoop YARN ou le gestionnaire de cluster Spark. Dans HDInsight, Spark s’exécute à l’aide du gestionnaire de cluster YARN. Une fois connecté, Spark acquiert des exécuteurs sur les nœuds de travail du cluster ; il s’agit de processus qui exécutent des calculs et stockent les données de l’application. Ensuite, il envoie le code de l’application (défini par les fichiers JAR ou Python transmis à SparkContext) aux exécuteurs. Enfin, SparkContext envoie les tâches aux exécuteurs, qui les exécuteront.

SparkContext exécute la fonction principale de l’utilisateur et les différentes opérations parallèles sur les nœuds de travail. Ensuite, il collecte les résultats des opérations. Les nœuds Worker lisent et écrivent des données dans le système de fichiers DFS hadoop. Les nœuds Worker mettent également en cache les données transformées en mémoire comme les jeux de données résilients distribués (RDD).

SparkContext se connecte au maître Spark et il est chargé de convertir une application en un graphe orienté (DAG) de tâches individuelles. Ces tâches sont exécutées au sein d’un processus d’exécuteur sur les nœuds worker. Chaque application obtient ses propres processus d’exécuteur. Ils restent opérationnels pendant toute la durée de l’application et exécutent des tâches dans plusieurs threads.

Cas d’utilisation de Spark dans HDInsight

Les clusters Spark sur HDInsight autorisent les principaux scénarios suivants :

Analyse des données interactive et Power BI

Apache Spark sur HDInsight stocke les données dans Stockage Blob Azure, Azure Data Lake Gen1 ou Azure Data Lake Storage Gen2. Des experts et des décideurs clés peuvent analyser les données et générer les rapports correspondants, puis utiliser Microsoft Power BI pour créer des rapports interactifs à partir des données analysées. Les analystes peuvent démarrer à partir des données non structurées/semi-structurées dans le stockage du cluster, définir un schéma pour les données à l’aide des blocs-notes, puis générer des modèles de données à l’aide de Microsoft Power BI. Les clusters Spark dans HDInsight prennent également en charge de nombreux outils décisionnels tiers, comme Tableau, qui facilitent la tâche aux analystes de données, experts et décideurs clés.

Spark Machine Learning

Apache Spark est fourni avec MLlib. MLlib est une bibliothèque Machine Learning basée sur Spark que vous pouvez utiliser à partir d’un cluster Spark sur HDInsight. Un cluster Spark dans HDInsight inclut également Anaconda, une distribution de Python comportant différents types de packages pour le machine learning. Avec la prise en charge intégrée des notebooks Jupyter et Zeppelin, vous disposez d’un environnement de création d’applications Machine Learning.

Analyse des données de diffusion en continu et en temps réel Spark

Les clusters Spark sur HDInsight offrent une prise en charge améliorée de la création de solutions d’analyse en temps réel. Si Spark a déjà des connecteurs pour la réception des données provenant de nombreuses sources telles que les sockets Kafka, Flume, Twitter, ZeroMQ ou TCP, Spark dans HDInsight ajoute la prise en charge de première classe de la réception des données provenant d’Azure Event Hubs. La fonctionnalité Event Hubs est le service de file d’attente le plus largement utilisé sur Azure. Avec leur prise en charge complète d’Event Hubs, les clusters Spark dans HDInsight constituent une plateforme idéale pour créer un pipeline d’analytique en temps réel.

Étapes suivantes

Cette présentation offre une vue d’ensemble d’Apache Spark dans Azure HDInsight. Vous pouvez utiliser les articles suivants pour en découvrir plus sur Apache Spark dans HDInsight, et vous pouvez créer un cluster HDInsight Spark et exécuter des exemples de requêtes Spark :