Présentation d’Apache Spark dans Azure HDInsightWhat is Apache Spark in 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 is a parallel processing framework that supports in-memory processing to boost the performance of big-data analytic applications. Apache Spark dans Azure HDInsight est l’implémentation Microsoft d’Apache Spark dans le cloud.Apache Spark in Azure HDInsight is the Microsoft implementation of Apache Spark in the cloud. HDInsight facilite la création et la configuration de clusters Spark dans Azure.HDInsight makes it easier to create and configure a Spark cluster in Azure. Les clusters Spark dans HDInsight sont compatibles avec le Stockage Azure et Azure Data Lake Storage.Spark clusters in HDInsight are compatible with Azure Storage and Azure Data Lake Storage. Vous pouvez donc utiliser des clusters HDInsight Spark pour traiter vos données stockées dans Azure.So you can use HDInsight Spark clusters to process your data stored in Azure. Pour obtenir des informations sur les composants et le contrôle de version, consultez Composants et versions Apache Hadoop dans Azure HDInsight.For the components and the versioning information, see Apache Hadoop components and versions in Azure HDInsight.

Spark : une infrastructure unifiée

Qu’est-ce qu’Apache Spark ?What is Apache Spark?

Spark fournit des primitives pour le calcul de cluster en mémoire.Spark provides primitives for in-memory cluster computing. Un travail Spark peut charger et mettre en cache des données en mémoire et les interroger à plusieurs reprises.A Spark job can load and cache data into memory and query it repeatedly. 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).In-memory computing is much faster than disk-based applications, such as Hadoop, which shares data through Hadoop distributed file system (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.Spark also integrates into the Scala programming language to let you manipulate distributed data sets like local collections. Il n’est pas nécessaire de tout structurer comme des opérations de réduction et de mappage.There's no need to structure everything as map and reduce operations.

MapReduce traditionnel et Spark

Les clusters Spark dans HDInsight constituent un service Spark entièrement géré.Spark clusters in HDInsight offer a fully managed Spark service. Voici les avantages des clusters Spark dans HDInsight.Benefits of creating a Spark cluster in HDInsight are listed here.

FonctionnalitéFeature DescriptionDescription
Facilité de créationEase creation 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.You can create a new Spark cluster in HDInsight in minutes using the Azure portal, Azure PowerShell, or the HDInsight .NET SDK. Consultez Bien démarrer avec un cluster Apache Spark dans HDInsight.See Get started with Apache Spark cluster in HDInsight.
Simplicité d'utilisationEase of use Un cluster Spark sur HDInsight inclut des blocs-notes Jupyter et Apache Zeppelin.Spark cluster in HDInsight include Jupyter and Apache Zeppelin notebooks. Vous pouvez utiliser les blocs-notes pour le traitement interactif et la visualisation des données.You can use these notebooks for interactive data processing and visualization.
API RESTREST APIs 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.Spark clusters in HDInsight include Apache Livy, a REST API-based Spark job server to remotely submit and monitor jobs. Consultez Utiliser l’API REST Spark Apache pour envoyer des travaux à distance à un cluster Spark HDInsight.See Use Apache Spark REST API to submit remote jobs to an HDInsight Spark cluster.
Prise en charge d’Azure Data Lake StorageSupport for Azure Data Lake Storage Les clusters Spark dans HDInsight peuvent utiliser Azure Data Lake Storage comme stockage principal ou comme stockage supplémentaire.Spark clusters in HDInsight can use Azure Data Lake Storage as both the primary storage or additional storage. Pour plus d’informations sur Data Lake Storage, consultez Vue d’ensemble d’Azure Data Lake Storage.For more information on Data Lake Storage, see Overview of Azure Data Lake Storage.
Intégration aux services AzureIntegration with Azure services Un cluster Spark dans HDInsight s’accompagne d’un connecteur à Azure Event Hubs.Spark cluster in HDInsight comes with a connector to Azure Event Hubs. Vous pouvez créer des applications de diffusion en continu avec Event Hubs, en plus de Apache Kafka, qui est déjà disponible dans Spark.You can build streaming applications using the Event Hubs, in addition to Apache Kafka, which is already available as part of Spark.
Prise en charge de ML ServerSupport for ML Server La prise en charge de ML Server dans HDInsight est fournie en tant que type de cluster ML Services.Support for ML Server in HDInsight is provided as the ML Services cluster type. Il est possible de configurer un cluster ML Services de façon à effectuer des calculs R distribués à la vitesse d’un cluster Spark.You can set up an ML Services cluster to run distributed R computations with the speeds promised with a Spark cluster. Pour plus d’informations, consultez Qu’est-ce que ML Services dans Azure HDInsight.For more information, see What is ML Services in Azure HDInsight.
Intégration à des environnements de développement intégrés tiersIntegration with third-party IDEs HDInsight offre différents plug-ins d’IDE permettant de créer et d’envoyer des applications sur un cluster HDInsight Spark.HDInsight provides several IDE plugins that are useful to create and submit applications to an HDInsight Spark cluster. Pour plus d’informations, consultez Utiliser Azure Toolkit for IntelliJ IDEA, Utiliser Spark & Hive Tools pour VSCode et Utiliser Azure Toolkit for Eclipse.For more information, see Use Azure Toolkit for IntelliJ IDEA, Use Spark & Hive Tools for VSCode, and Use Azure Toolkit for Eclipse.
Requêtes simultanéesConcurrent Queries Les clusters Spark sur HDInsight prennent en charge les requêtes simultanées.Spark clusters in HDInsight support concurrent queries. Ainsi, plusieurs requêtes d’un même utilisateur ou de différents utilisateurs et applications peuvent partager les mêmes ressources de cluster.This capability enables multiple queries from one user or multiple queries from various users and applications to share the same cluster resources.
Mise en cache sur des disques SSDCaching on SSDs 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.You can choose to cache data either in memory or in SSDs attached to the cluster nodes. 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.Caching in memory provides the best query performance but could be expensive. 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.Caching in SSDs provides a great option for improving query performance without the need to create a cluster of a size that is required to fit the entire dataset in memory.
Intégration aux outils décisionnelsIntegration with BI Tools Les clusters Spark dans HDInsight fournissent des connecteurs pour certains outils décisionnels, notamment Power BI pour l’analytique des données.Spark clusters in HDInsight provide connectors for BI tools such as Power BI for data analytics.
Bibliothèques Anaconda préchargéesPre-loaded Anaconda libraries Les clusters Spark dans HDInsight sont fournis avec des bibliothèques Anaconda préinstallées.Spark clusters in HDInsight come with Anaconda libraries pre-installed. Anaconda fournit près de 200 bibliothèques pour le machine learning, l’analyse des données, la visualisation, etc.Anaconda provides close to 200 libraries for machine learning, data analysis, visualization, and so on.
ExtensibilitéScalability HDInsight permet de changer le nombre de nœuds de cluster.HDInsight allows you to change the number of cluster nodes. En outre, les clusters Spark peuvent être supprimés sans perte de données puisque toutes les données sont stockées dans le Stockage Azure ou Data Lake Storage.Also, Spark clusters can be dropped with no loss of data since all the data is stored in Azure Storage or Data Lake Storage.
Contrat SLASLA 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.Spark clusters in HDInsight come with 24/7 support and an SLA of 99.9% up-time.

Les clusters Apache Spark dans HDInsight incluent les composants suivants qui sont disponibles dans les clusters par défaut.Apache Spark clusters in HDInsight include the following components that are available on the clusters by default.

Les clusters Spark dans HDInsight fournissent également un pilote ODBC pour la connectivité aux clusters Spark dans HDInsight à partir d’outils décisionnels comme Microsoft Power BI.Spark clusters in HDInsight also provide an ODBC driver for connectivity to Spark clusters in HDInsight from BI tools such as Microsoft Power BI.

Architecture d’un cluster SparkSpark cluster architecture

L’architecture de HDInsight Spark

Il est facile de comprendre les composants de Spark si vous comprenez comment fonctionne Spark sur les clusters HDInsight.It's easy to understand the components of Spark by understanding how Spark runs on HDInsight clusters.

Les applications Spark s’exécutent sous la forme d’ensembles de processus indépendants sur un cluster, coordonnées par l’objet SparkContext du programme principal (appelé programme pilote).Spark applications run as independent sets of processes on a cluster, coordinated by the SparkContext object in your main program (called the driver program).

SparkContext peut se connecter à plusieurs types de gestionnaires de cluster, qui allouent des ressources aux différentes applications.The SparkContext can connect to several types of cluster managers, which allocate resources across applications. Parmi ces gestionnaires de cluster, on peut citer Apache Mesos, Apache Hadoop YARN et le gestionnaire de cluster Spark.These cluster managers include Apache Mesos, Apache Hadoop YARN, or the Spark cluster manager. Dans HDInsight, Spark s’exécute à l’aide du gestionnaire de cluster YARN.In HDInsight, Spark runs using the YARN cluster manager. 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.Once connected, Spark acquires executors on workers nodes in the cluster, which are processes that run computations and store data for your application. Ensuite, il envoie le code de l’application (défini par les fichiers JAR ou Python transmis à SparkContext) aux exécuteurs.Next, it sends your application code (defined by JAR or Python files passed to SparkContext) to the executors. Enfin, SparkContext envoie les tâches aux exécuteurs, qui les exécuteront.Finally, SparkContext sends tasks to the executors to run.

SparkContext exécute la fonction principale de l’utilisateur et les différentes opérations parallèles sur les nœuds de travail.The SparkContext runs the user's main function and executes the various parallel operations on the worker nodes. Ensuite, il collecte les résultats des opérations.Then, the SparkContext collects the results of the operations. Les nœuds Worker lisent et écrivent des données dans le système de fichiers DFS hadoop.The worker nodes read and write data from and to the Hadoop distributed file system. 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).The worker nodes also cache transformed data in-memory as Resilient Distributed Datasets (RDDs).

SparkContext se connecte au maître Spark ; il est chargé de convertir une application en un graphe orienté (DAG) de tâches individuelles exécutées au sein d’un processus d’exécution sur les nœuds de travail.The SparkContext connects to the Spark master and is responsible for converting an application to a directed graph (DAG) of individual tasks that get executed within an executor process on the worker nodes. Chaque application obtient ses propres processus d’exécution qui restent pour la durée de toute l’application et exécutent des tâches sur plusieurs threads.Each application gets its own executor processes, which stay up for the duration of the whole application and run tasks in multiple threads.

Cas d’utilisation de Spark dans HDInsightSpark in HDInsight use cases

Les clusters Spark sur HDInsight autorisent les principaux scénarios suivants :Spark clusters in HDInsight enable the following key scenarios:

  • Analyse des données interactive et Power BIInteractive data analysis and BI

    Apache Spark sur HDInsight stocke les données dans le Stockage Azure ou Azure Data Lake Storage.Apache Spark in HDInsight stores data in Azure Storage or Azure Data Lake Storage. Des experts et des décideurs clés peuvent analyser les données, générer les rapports correspondants et utiliser Microsoft Power BI pour créer des rapports interactifs à partir des données analysées.Business experts and key decision makers can analyze and build reports over that data and use Microsoft Power BI to build interactive reports from the analyzed data. 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.Analysts can start from unstructured/semi structured data in cluster storage, define a schema for the data using notebooks, and then build data models using Microsoft Power BI. Les clusters Spark dans HDInsight prennent également en charge plusieurs outils décisionnels tiers comme Tableau, qui facilitent la tâche aux analystes de données, experts et grands décideurs.Spark clusters in HDInsight also support a number of third-party BI tools such as Tableau making it easier for data analysts, business experts, and key decision makers.

    Tutoriel : Analyser les données d’Apache Spark à l’aide de Power BI dans HDInsightTutorial: Visualize Spark data using Power BI

  • Spark Machine LearningSpark Machine Learning

    Apache Spark est fourni avec MLlib, bibliothèque d’apprentissage automatique basée sur Spark que vous pouvez utiliser à partir d’un cluster Spark sur HDInsight.Apache Spark comes with MLlib, a machine learning library built on top of Spark that you can use from a Spark cluster in HDInsight. Un cluster Spark dans HDInsight inclut également Anaconda, une distribution de Python comportant différents types de packages pour le machine learning.Spark cluster in HDInsight also includes Anaconda, a Python distribution with different kinds of packages for machine learning. Ajoutez à cela la prise en charge intégrée des Notebooks Jupyter et Zeppelin, et vous disposez d’un environnement de création d’applications de Machine Learning.Couple this with a built-in support for Jupyter and Zeppelin notebooks, and you have an environment for creating machine learning applications.

    Tutoriel : Prédire les températures d’un bâtiment en utilisant des données HVACTutorial: Predict building temperatures using HVAC data
    Tutoriel : Utiliser Apache Spark MLlib pour créer une application de Machine Learning et analyser un jeu de donnéesTutorial: Predict food inspection results

  • Analyse des données de diffusion en continu et en temps réel SparkSpark streaming and real-time data analysis

    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.Spark clusters in HDInsight offer a rich support for building real-time analytics solutions. Si Spark possède 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.While Spark already has connectors to ingest data from many sources like Kafka, Flume, Twitter, ZeroMQ, or TCP sockets, Spark in HDInsight adds first-class support for ingesting data from Azure Event Hubs. La fonctionnalité Event Hubs est le service de file d’attente le plus largement utilisé sur Azure.Event Hubs is the most widely used queuing service on Azure. Grâce à leur prise en charge immédiate d’Event Hubs, les clusters Spark dans HDInsight constituent une plateforme idéale pour créer un pipeline d’analyse en temps réel.Having an out-of-the-box support for Event Hubs makes Spark clusters in HDInsight an ideal platform for building real-time analytics pipeline.

Par où commencer ?Where do I start?

Vous pouvez lire les articles suivants pour en savoir plus sur Apache Spark dans HDInsight :You can use the following articles to learn more about Apache Spark in HDInsight:

Étapes suivantesNext Steps

Cette présentation offre une vue d’ensemble d’Apache Spark dans Azure HDInsight.In this overview, you get some basic understanding of Apache Spark in Azure HDInsight. Passez à l’article suivant pour apprendre à créer un cluster HDInsight Spark et à exécuter certaines requêtes Spark SQL :Advance to the next article to learn how to create an HDInsight Spark cluster and run some Spark SQL queries: