Was ist Apache Spark in Azure HDInsight?What is Apache Spark in Azure HDInsight

Apache Spark ist ein Framework für die Parallelverarbeitung, das In-Memory-Verarbeitung unterstützt, um die Leistung von Big Data-Analyseanwendungen zu steigern.Apache Spark is a parallel processing framework that supports in-memory processing to boost the performance of big-data analytic applications. Apache Spark in Azure HDInsight ist die Microsoft-Implementierung von Apache Spark in der Cloud.Apache Spark in Azure HDInsight is the Microsoft implementation of Apache Spark in the cloud. HDInsight vereinfacht das Erstellen und Konfigurieren eines Spark-Clusters in Azure.HDInsight makes it easier to create and configure a Spark cluster in Azure. Spark-Cluster in HDInsight sind mit Azure Storage und mit Azure Data Lake Storage kompatibel.Spark clusters in HDInsight are compatible with Azure Storage and Azure Data Lake Storage. Dadurch können Sie HDInsight Spark-Cluster für die Verarbeitung Ihrer in Azure gespeicherten Daten verwenden.So you can use HDInsight Spark clusters to process your data stored in Azure. Informationen zu den Komponenten und Versionen finden Sie unter Welche Apache Hadoop-Komponenten und -Versionen sind in HDInsight verfügbar?.For the components and the versioning information, see Apache Hadoop components and versions in Azure HDInsight.

Spark: ein einheitliches Framework

Was ist Apache Spark?What is Apache Spark?

Spark stellt Primitive für das In-Memory-Clustercomputing bereit.Spark provides primitives for in-memory cluster computing. Bei einem Spark-Auftrag können Daten in den Arbeitsspeicher geladen, zwischengespeichert und dann wiederholt abgefragt werden.A Spark job can load and cache data into memory and query it repeatedly. In-Memory-Computing ist deutlich schneller als datenträgerbasierte Anwendungen wie Hadoop, die Daten über das Hadoop Distributed File System (HDFS) freigeben.In-memory computing is much faster than disk-based applications, such as Hadoop, which shares data through Hadoop distributed file system (HDFS). Spark kann auch in die Scala-Programmiersprache integriert werden, damit Sie verteilte Datasets (etwa lokale Sammlungen) bearbeiten können.Spark also integrates into the Scala programming language to let you manipulate distributed data sets like local collections. Es ist nicht erforderlich, alles in Form von Mapper- und Reducer-Vorgängen zu strukturieren.There's no need to structure everything as map and reduce operations.

Vergleich von herkömmlichem MapReduce mit Spark

Spark-Cluster in HDInsight bieten einen vollständig verwalteten Spark-Dienst.Spark clusters in HDInsight offer a fully managed Spark service. Im Anschluss sind die Vorteile der Erstellung eines Spark-Clusters in HDInsight aufgeführt.Benefits of creating a Spark cluster in HDInsight are listed here.

FeatureFeature BESCHREIBUNGDescription
Einfache ErstellungEase creation Über das Azure-Portal, mithilfe von Azure PowerShell oder über das HDInsight .NET SDK können Sie in wenigen Minuten einen neuen Spark-Cluster in HDInsight erstellen.You can create a new Spark cluster in HDInsight in minutes using the Azure portal, Azure PowerShell, or the HDInsight .NET SDK. Siehe Erste Schritte mit Apache Spark-Clustern in HDInsight.See Get started with Apache Spark cluster in HDInsight.
Einfache BedienungEase of use Spark-Cluster in HDInsight enthalten Jupyter und Apache Zeppelin Notebooks.Spark cluster in HDInsight include Jupyter and Apache Zeppelin notebooks. Diese Notebooks können Sie für die interaktive Datenverarbeitung und -visualisierung verwenden.You can use these notebooks for interactive data processing and visualization.
REST-APIsREST APIs Spark-Cluster in HDInsight beinhalten Apache Livy, einen auf der REST-API basierenden Spark-Auftragsserver für die Remoteübermittlung und -überwachung von Aufträgen.Spark clusters in HDInsight include Apache Livy, a REST API-based Spark job server to remotely submit and monitor jobs. Siehe Übermitteln von Remoteaufträgen an einen HDInsight Spark-Cluster mithilfe der Apache Spark-REST-API.See Use Apache Spark REST API to submit remote jobs to an HDInsight Spark cluster.
Unterstützung für Azure Data Lake StorageSupport for Azure Data Lake Storage Spark-Cluster in HDInsight können Azure Data Lake Storage als primären oder zusätzlichen Speicher verwenden.Spark clusters in HDInsight can use Azure Data Lake Storage as both the primary storage or additional storage. Weitere Informationen zu Data Lake Storage finden Sie unter Übersicht über Azure Data Lake Storage.For more information on Data Lake Storage, see Overview of Azure Data Lake Storage.
Integration in Azure-DiensteIntegration with Azure services Ein Spark-Cluster in HDInsight verfügt über einen Connector für Azure Event Hubs.Spark cluster in HDInsight comes with a connector to Azure Event Hubs. Sie können Streaminganwendungen unter Verwendung von Event Hubs erstellen. Dies ist eine Alternative zur Option Apache Kafka, die als Teil von Spark bereits verfügbar ist.You can build streaming applications using the Event Hubs, in addition to Apache Kafka, which is already available as part of Spark.
Unterstützung für ML ServerSupport for ML Server Die Unterstützung für ML Server in HDInsight wird unter dem Clustertyp ML Services bereitgestellt.Support for ML Server in HDInsight is provided as the ML Services cluster type. Sie können einen ML Services-Cluster einrichten, um verteilte R-Berechnungen mit den für einen Spark-Cluster garantierten Geschwindigkeiten auszuführen.You can set up an ML Services cluster to run distributed R computations with the speeds promised with a Spark cluster. Weitere Informationen finden Sie unter Was ist ML Services in Azure HDInsight?.For more information, see What is ML Services in Azure HDInsight.
Integration in Drittanbieter-IDEsIntegration with third-party IDEs HDInsight bietet mehrere hilfreiche IDE-Plug-Ins für die Erstellung von Anwendungen und deren Übermittlung an einen HDInsight Spark-Cluster.HDInsight provides several IDE plugins that are useful to create and submit applications to an HDInsight Spark cluster. Weitere Informationen finden Sie unter Verwenden des Azure Toolkits für IntelliJ IDEA, Verwenden von HDInsight für Visual Studio Code und Verwenden des Azure Toolkits für Eclipse.For more information, see Use Azure Toolkit for IntelliJ IDEA, Use HDInsight for VSCode, and Use Azure Toolkit for Eclipse.
Gleichzeitige AbfragenConcurrent Queries Spark-Cluster in HDInsight unterstützen gleichzeitige Abfragen.Spark clusters in HDInsight support concurrent queries. Dank dieser Funktion können mehrere Abfragen von einem Benutzer oder mehrere Abfragen von unterschiedlichen Benutzern und Anwendungen die gleichen Clusterressourcen verwenden.This capability enables multiple queries from one user or multiple queries from various users and applications to share the same cluster resources.
Zwischenspeicherung auf SSDsCaching on SSDs Sie können Daten entweder im Arbeitsspeicher oder auf SSDs zwischenspeichern, die an die Clusterknoten angefügt sind.You can choose to cache data either in memory or in SSDs attached to the cluster nodes. Das Zwischenspeichern im Arbeitsspeicher liefert die beste Abfrageleistung, kann aber teuer sein.Caching in memory provides the best query performance but could be expensive. Das Zwischenspeichern auf SSDs ist eine hervorragende Möglichkeit zur Verbesserung der Abfrageleistung, ohne dass ein Cluster mit einer Größe erstellt werden muss, die für das Einfügen des gesamten Datasets in den Arbeitsspeicher ausreicht.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.
Integration in BI-ToolsIntegration with BI Tools Spark-Cluster in HDInsight enthalten Connectors für BI-Tools wie Power BI für die Datenanalyse.Spark clusters in HDInsight provide connectors for BI tools such as Power BI for data analytics.
Vorinstallierte Anaconda-BibliothekenPre-loaded Anaconda libraries Für Spark-Cluster in HDInsight sind Anaconda-Bibliotheken vorinstalliert.Spark clusters in HDInsight come with Anaconda libraries pre-installed. Anaconda bietet ca. 200 Bibliotheken für Machine Learning, Datenanalyse, Visualisierung usw.Anaconda provides close to 200 libraries for machine learning, data analysis, visualization, etc.
SkalierbarkeitScalability HDInsight ermöglicht das Ändern der Anzahl von Clusterknoten.HDInsight allows you to change the number of cluster nodes. Darüber hinaus können Spark-Cluster ohne Datenverlust verworfen werden, da alle Daten in Azure Storage oder Data Lake Storage gespeichert werden.Also, Spark clusters can be dropped with no loss of data since all the data is stored in Azure Storage or Data Lake Storage.
SLASLA Für Spark-Cluster in HDInsight ist rund um die Uhr Support verfügbar, und in der SLA ist eine Betriebszeit von 99,9 Prozent angegeben.Spark clusters in HDInsight come with 24/7 support and an SLA of 99.9% up-time.

Apache Spark-Cluster in HDInsight enthalten die folgenden Komponenten, die standardmäßig in den Clustern verfügbar sind:Apache Spark clusters in HDInsight include the following components that are available on the clusters by default.

Spark-Cluster in HDInsight verfügen auch über einen ODBC-Treiber für die Konnektivität mit Spark-Clustern in HDInsight über BI-Tools wie 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.

Spark-ClusterarchitekturSpark cluster architecture

Die Architektur von HDInsight Spark

Die Komponenten von Spark können Sie ganz einfach verstehen, wenn Sie sich mit der Ausführung von Spark in HDInsight-Clustern vertraut machen.It is easy to understand the components of Spark by understanding how Spark runs on HDInsight clusters.

Spark-Anwendungen werden als unabhängige Gruppen von Prozessen in einem Cluster ausgeführt und vom SparkContext-Objekt in Ihrem Hauptprogramm (dem so genannten Treiberprogramm) koordiniert.Spark applications run as independent sets of processes on a cluster, coordinated by the SparkContext object in your main program (called the driver program).

Das SparkContext-Objekt kann eine Verbindung mit mehreren Arten von Cluster-Managern herstellen, die anwendungsübergreifend Ressourcen zuteilen.The SparkContext can connect to several types of cluster managers, which allocate resources across applications. Zu diesen Cluster-Managern zählen unter anderem Apache Mesos, Apache Hadoop YARN sowie der Spark-Cluster-Manager.These cluster managers include Apache Mesos, Apache Hadoop YARN, or the Spark cluster manager. In HDInsight wird Spark über den YARN-Cluster-Manager ausgeführt.In HDInsight, Spark runs using the YARN cluster manager. Nach der Verbindungsherstellung ruft Spark Executors für Workerknoten im Cluster ab. Dabei handelt es sich um Prozesse, die Berechnungen ausführen und Daten für Ihre Anwendung speichern.Once connected, Spark acquires executors on workers nodes in the cluster, which are processes that run computations and store data for your application. Als Nächstes wird Ihr Anwendungscode (definiert durch JAR- oder Python-Dateien, die an SparkContext übergeben werden) an die Executors gesendet.Next, it sends your application code (defined by JAR or Python files passed to SparkContext) to the executors. Abschließend sendet SparkContext Aufgaben zur Ausführung an die Executors.Finally, SparkContext sends tasks to the executors to run.

Das SparkContext-Objekt führt die main-Funktion des Benutzers und dann die verschiedenen parallelen Vorgänge auf den Workerknoten aus.The SparkContext runs the user's main function and executes the various parallel operations on the worker nodes. Anschließend sammelt es die Ergebnisse der Vorgänge.Then, the SparkContext collects the results of the operations. Die Workerknoten lesen und schreiben Daten aus dem und in das Hadoop Distributed File System.The worker nodes read and write data from and to the Hadoop distributed file system. Außerdem speichern die Workerknoten transformierte Daten im Arbeitsspeicher als RDDs (Resilient Distributed Datasets).The worker nodes also cache transformed data in-memory as Resilient Distributed Datasets (RDDs).

Das SparkContext-Objekt stellt eine Verbindung mit dem Spark-Master her und ist für die Konvertierung einer Anwendung in einen gerichteten Graphen (DAG) mit einzelnen Aufgaben verantwortlich, die auf den Workerknoten in einem Executor-Prozess ausgeführt werden.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. Jede Anwendung erhält ihre eigenen Executor-Prozesse, die über die gesamte Anwendungsdauer aktiv bleiben und Aufgaben in mehreren Threads ausführen.Each application gets its own executor processes, which stay up for the duration of the whole application and run tasks in multiple threads.

Anwendungsfälle für Spark in HDInsightSpark in HDInsight use cases

Spark-Cluster in HDInsight ermöglichen die folgenden Schlüsselszenarien:Spark clusters in HDInsight enable the following key scenarios:

  • Interaktive Datenanalyse und BIInteractive data analysis and BI

    Apache Spark in HDInsight speichert Daten in Azure Storage oder Azure Data Lake Storage.Apache Spark in HDInsight stores data in Azure Storage or Azure Data Lake Storage. Experten und Entscheidungsträger in Unternehmen können diese Daten analysieren und Berichte damit erstellen und Microsoft Power BI verwenden, um aus den analysierten Daten interaktive Berichte anzufertigen.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. Analysten können mit unstrukturierten oder teilweise strukturierten Daten im Clusterspeicher beginnen, mit Notebooks ein Schema für die Daten definieren und dann mit Microsoft Power BI Datenmodelle erstellen.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. Spark-Cluster in HDInsight unterstützen auch eine Reihe von BI-Drittanbietertools (beispielsweise Tableau) und machen dadurch Datenanalysten, Unternehmensexperten und Entscheidungsträgern das Leben leichter.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.

    Tutorial: Visualisieren von Spark-Daten mithilfe von Power BITutorial: Visualize Spark data using Power BI

  • Spark Machine LearningSpark Machine Learning

    Apache Spark verfügt über MLlib, eine Machine Learning-Bibliothek, die auf Spark aufbaut und die Sie über ein Spark-Cluster in HDInsight verwenden können.Apache Spark comes with MLlib, a machine learning library built on top of Spark that you can use from a Spark cluster in HDInsight. Zu Spark-Clustern in HDInsight gehört auch Anaconda – eine Python-Distribution mit verschiedensten Paketen für Machine Learning.Spark cluster in HDInsight also includes Anaconda, a Python distribution with a variety of packages for machine learning. In Kombination mit der integrierten Unterstützung für Jupyter und Zeppelin Notebooks erhalten Sie eine Umgebung zur Erstellung von Machine Learning-Anwendungen.Couple this with a built-in support for Jupyter and Zeppelin notebooks, and you have an environment for creating machine learning applications.

    Tutorial: Vorhersage von Gebäudetemperaturen mithilfe von HVAC-DatenTutorial: Predict building temperatures using HVAC data
    Tutorial: Vorhersagen des Ergebnisses einer LebensmittelüberwachungTutorial: Predict food inspection results

  • Streaming und Echtzeit-Datenanalysen mit SparkSpark streaming and real-time data analysis

    Spark-Cluster in HDInsight bieten umfassende Unterstützung für die Erstellung von Echtzeit-Analyselösungen.Spark clusters in HDInsight offer a rich support for building real-time analytics solutions. Spark verfügt zwar bereits über Connectors zum Erfassen von Daten aus den unterschiedlichsten Quellen, z. B. Kafka, Flume, Twitter, ZeroMQ oder TCP-Sockets, aber mit Spark in HDInsight wird zusätzlich noch die erstklassige Unterstützung für das Erfassen von Daten aus Azure Event Hubs hinzugefügt.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. Event Hubs ist der Warteschlangendienst, der in Azure am häufigsten verwendet wird.Event Hubs is the most widely used queuing service on Azure. Da Event Hubs standardmäßig unterstützt wird, sind Spark-Cluster in HDInsight eine ideale Plattform zum Erstellen einer Echtzeit-Analysepipeline.Having an out-of-the-box support for Event Hubs makes Spark clusters in HDInsight an ideal platform for building real-time analytics pipeline.

Wo beginne ich?Where do I start?

Die folgenden Artikel enthalten weitere Informationen zu Apache Spark in HDInsight:You can use the following articles to learn more about Apache Spark in HDInsight:

Nächste SchritteNext Steps

In dieser Übersicht haben Sie einige grundlegende Informationen zu Apache Spark in Azure HDInsight erhalten.In this overview, you get some basic understanding of Apache Spark in Azure HDInsight. Im nächsten Artikel erfahren Sie, wie Sie einen HDInsight Spark-Cluster erstellen und einige Spark-SQL-Abfragen ausführen:Advance to the next article to learn how to create an HDInsight Spark cluster and run some Spark SQL queries: