Vad är Apache Spark i Azure HDInsightWhat is Apache Spark in Azure HDInsight

Apache Spark är ett ramverk för parallellbearbetning som stöder minnesintern bearbetning för att öka prestanda i program för stordataanalys.Apache Spark is a parallel processing framework that supports in-memory processing to boost the performance of big-data analytic applications. Apache Spark i Azure HDInsight är Microsofts implementering av Apache Spark i molnet.Apache Spark in Azure HDInsight is the Microsoft implementation of Apache Spark in the cloud. HDInsight gör det enklare att skapa och konfigurera ett Spark-kluster i Azure.HDInsight makes it easier to create and configure a Spark cluster in Azure. Apache Spark-kluster i HDInsight är kompatibla med Azure Storage och Azure Data Lake Storage.Spark clusters in HDInsight are compatible with Azure Storage and Azure Data Lake Storage. Så du kan använda HDInsight Spark-kluster för att bearbeta dina data som lagras i Azure.So you can use HDInsight Spark clusters to process your data stored in Azure. Information om komponenter och versionshantering finns i Apache Hadoop-komponenter och versioner i Azure HDInsight.For the components and the versioning information, see Apache Hadoop components and versions in Azure HDInsight.

Spark: ett enhetligt ramverk

Vad är Apache Spark?What is Apache Spark?

Spark tillhandahåller primitiver för klusterbearbetning i minnet.Spark provides primitives for in-memory cluster computing. Ett Spark-jobb kan läsa in och cachelagra data i minnet samt köra frågor på dessa data upprepade gånger.A Spark job can load and cache data into memory and query it repeatedly. Minnesintern beräkning är mycket snabbare än diskbaserade program, till exempel Hadoop, som delar data med hjälp av ett Hadoop-distribuerat filsystem (HDFS, Hadoop Distributed File System).In-memory computing is much faster than disk-based applications, such as Hadoop, which shares data through Hadoop distributed file system (HDFS). Spark är integrerat i programmeringsspråket Scala. På så sätt kan du bearbeta distribuerade datauppsättningar på samma sätt som lokala samlingar.Spark also integrates into the Scala programming language to let you manipulate distributed data sets like local collections. Det finns inget behov av att strukturera det hela i mappnings- och reduceringsåtgärder.There's no need to structure everything as map and reduce operations.

Traditionella MapReduce jämfört med Spark

Med Spark-kluster HDInsight får du tillgång till en helt hanterad Spark-tjänst.Spark clusters in HDInsight offer a fully managed Spark service. Fördelarna med att skapa ett Spark-kluster i HDInsight visas här.Benefits of creating a Spark cluster in HDInsight are listed here.

FunktionFeature BeskrivningDescription
Enkelt att skapaEase creation Du kan skapa ett nytt Spark-kluster i HDInsight på bara några minuter med hjälp av Azure Portal, Azure PowerShell eller HDInsight .NET SDK.You can create a new Spark cluster in HDInsight in minutes using the Azure portal, Azure PowerShell, or the HDInsight .NET SDK. Se Komma igång med Apache Spark-kluster i HDInsight.See Get started with Apache Spark cluster in HDInsight.
AnvändbarhetEase of use Spark-kluster i HDInsight innehåller Jupyter och Apache Zeppelin-anteckningsböcker.Spark cluster in HDInsight include Jupyter and Apache Zeppelin notebooks. Du kan de här anteckningsböckerna för interaktiv databehandling och visualisering.You can use these notebooks for interactive data processing and visualization.
REST API:erREST APIs HDInsight Spark innehåller Apache Livy, en REST-API-baserad Spark-jobbserver för fjärrsändning och -övervakning av jobb.Spark clusters in HDInsight include Apache Livy, a REST API-based Spark job server to remotely submit and monitor jobs. Se Använda REST-API:et för Apache Spark för att skicka fjärrstyrda jobb till ett HDInsight Spark-kluster.See Use Apache Spark REST API to submit remote jobs to an HDInsight Spark cluster.
Stöd för Azure Data Lake StorageSupport for Azure Data Lake Storage Apache Spark-kluster i HDInsight kan använda Azure Data Lake Storage som både primär och extra lagring.Spark clusters in HDInsight can use Azure Data Lake Storage as both the primary storage or additional storage. Mer information om Data Lake Storage finns i Översikt över Azure Data Lake Storage.For more information on Data Lake Storage, see Overview of Azure Data Lake Storage.
Integrering med Azure-tjänsterIntegration with Azure services Spark-kluster i HDInsight levereras med en anslutningsapp för Azure Event Hubs.Spark cluster in HDInsight comes with a connector to Azure Event Hubs. Med Event Hubs kan du skapa strömningsprogram utöver Apache Kafka, som redan ingår i Spark.You can build streaming applications using the Event Hubs, in addition to Apache Kafka, which is already available as part of Spark.
Stöd för ML ServerSupport for ML Server Stöd för ML Server i HDInsight tillhandahålls som klustertypen ML-tjänster.Support for ML Server in HDInsight is provided as the ML Services cluster type. Du kan konfigurera ett ML-tjänstkluster för att köra distribuerade R-beräkningar i de hastigheter Spark-klustret har kapacitet för.You can set up an ML Services cluster to run distributed R computations with the speeds promised with a Spark cluster. Mer information finns i Vad är ml-tjänster i Azure HDInsight.For more information, see What is ML Services in Azure HDInsight.
Integrering med tredje parts IDEsIntegration with third-party IDEs HDInsight tillhandahåller flera IDE-plugin-program som är användbara när du vill skapa och skicka program till ett HDInsight Spark-kluster.HDInsight provides several IDE plugins that are useful to create and submit applications to an HDInsight Spark cluster. Mer information finns i använda Azure Toolkit for INTELLIJ idé, använda Spark & Hive-verktyg för VSCodeoch använda 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.
Samtidiga frågorConcurrent Queries Spark-kluster i HDInsight har stöd för samtidiga frågor.Spark clusters in HDInsight support concurrent queries. Denna kapacitet gör att flera frågor från en användare eller flera frågor från olika användare och program kan dela samma klusterresurser.This capability enables multiple queries from one user or multiple queries from various users and applications to share the same cluster resources.
Cachelagring i SSD:erCaching on SSDs Du kan välja att cachelagrade data i minnet eller i SSD:er anslutna till klusternoderna.You can choose to cache data either in memory or in SSDs attached to the cluster nodes. Cachelagring i minnet ger bästa frågeprestanda, men kan vara dyrt.Caching in memory provides the best query performance but could be expensive. Cachelagring i SSD:er är ett bra alternativ för att förbättra frågeprestanda utan att behöva skapa ett kluster i den storlek som krävs för att få plats med hela datauppsättningen i minnet.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.
Integrering med BI-verktygIntegration with BI Tools Spark-kluster för HDInsight tillhandahåller anslutningsappar för BI-verktyg som Power BI för dataanalys.Spark clusters in HDInsight provide connectors for BI tools such as Power BI for data analytics.
Förinstallerade Anaconda-bibliotekPre-loaded Anaconda libraries Spark-kluster i HDInsight kommer med förinstallerade Anaconda-bibliotek.Spark clusters in HDInsight come with Anaconda libraries pre-installed. Anaconda tillhandahåller nära 200 bibliotek för maskin inlärning, data analys, visualisering och så vidare.Anaconda provides close to 200 libraries for machine learning, data analysis, visualization, and so on.
SkalbarhetScalability Med HDInsight kan du ändra antalet klusternoder.HDInsight allows you to change the number of cluster nodes. Dessutom kan du ta bort Apache Spark-kluster utan någon dataförlust eftersom alla data lagras i Azure Storage eller 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.
SLASLA Spark-kluster på HDInsight levereras med dygnet runt-support veckans alla dagar och ett serviceavtal för 99,9 % drifttid.Spark clusters in HDInsight come with 24/7 support and an SLA of 99.9% up-time.

Apache Spark-kluster i HDInsight innehåller följande komponenter som är tillgängliga i klustren som standard.Apache Spark clusters in HDInsight include the following components that are available on the clusters by default.

Spark-kluster i HDInsight tillhandahåller även en ODBC-drivrutin för anslutning till Spark-kluster i HDInsight från BI-verktyg som 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-klusterarkitekturSpark cluster architecture

HDInsight Sparks arkitektur

Det är enkelt att förstå komponenterna i Spark genom att förstå hur Spark körs på HDInsight-kluster.It's easy to understand the components of Spark by understanding how Spark runs on HDInsight clusters.

Spark-program körs som oberoende processuppsättningar i ett kluster, och koordineras av SparkContext-objektet i ditt huvudprogram (kallas drivrutinsprogram).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 kan ansluta till flera olika typer av klusterhanterare, vilket allokerar resurser till alla program.The SparkContext can connect to several types of cluster managers, which allocate resources across applications. Bland dessa klusterhanterare finns Apache Mesos, Apache Hadoop YARN och Spark-klusterhanteraren.These cluster managers include Apache Mesos, Apache Hadoop YARN, or the Spark cluster manager. I HDInsight körs Spark ovanpå YARN-klusterhanteraren.In HDInsight, Spark runs using the YARN cluster manager. När du är ansluten inhämtar Spark exekverare på klustrets arbetarnoder, vilka är processer som kör beräkningar och lagrar data för ditt program.Once connected, Spark acquires executors on workers nodes in the cluster, which are processes that run computations and store data for your application. Därefter skickar den din programkod (definieras av JAR- eller Python-filer som överförts till SparkContext) till exekverarna.Next, it sends your application code (defined by JAR or Python files passed to SparkContext) to the executors. Slutligen skickar SparkContext uppgifter till de exekverare som ska köras.Finally, SparkContext sends tasks to the executors to run.

SparkContext kör användarens main-funktion och utför de olika parallella åtgärderna på arbetsnoderna.The SparkContext runs the user's main function and executes the various parallel operations on the worker nodes. Drivrutinen samlar sedan in åtgärdernas resultat.Then, the SparkContext collects the results of the operations. Arbetsnoderna läser data från och skriver data till HDFS-filsystemet (Hadoop Distributed File System).The worker nodes read and write data from and to the Hadoop distributed file system. Arbetsnoderna cachelagrar också omvandlade data i minnet som RDD-datauppsättningar (Resilient Distributed Dataset).The worker nodes also cache transformed data in-memory as Resilient Distributed Datasets (RDDs).

SparkContext ansluter till Spark-hanteraren och ansvarar för omvandling av en applikation till en riktad graf (DAG) över enskilda uppgifter som körs i en körningsprocess på arbetsnoderna.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. Varje applikation får en egen körningsprocess som förblir aktiv under applikationens livslängd och kör uppgifter i flera trådar.Each application gets its own executor processes, which stay up for the duration of the whole application and run tasks in multiple threads.

Spark i HDInsight – användningsfallSpark in HDInsight use cases

Spark-kluster i HDInsight möjliggör följande huvudsakliga scenarier:Spark clusters in HDInsight enable the following key scenarios:

  • Interaktiv dataanalys och BIInteractive data analysis and BI

    Apache Spark i HDInsight lagrar data i Azure Storage eller Azure Data Lake Storage.Apache Spark in HDInsight stores data in Azure Storage or Azure Data Lake Storage. Affärsexperter och beslutsfattare kan analysera och skapa rapporter över dessa data och använda Microsoft Power BI till att skapa interaktiva rapporter utifrån analyserade data.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. Analytiker kan utgå ifrån ostrukturerade/halvstrukturerade data i klusterlagring, definiera ett schema för data med anteckningsböcker och sedan skapa datamodeller med 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. Spark-kluster i HDInsight har också stöd för ett antal BI-verktyg från tredje part, bland annat Tableau. Det gör det enklare för dataanalytiker, affärsexperter och beslutsfattare.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.

    Självstudie: Visualisera Spark-data med Power BITutorial: Visualize Spark data using Power BI

  • Spark-maskininlärningSpark Machine Learning

    Med Apache Spark medföljer Machine Learning-biblioteket MLlib som är byggt på Spark som du kan använda från ett Spark-kluster i 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. Spark-kluster i HDInsight innehåller också Anaconda, en python-distribution med olika typer av paket för Machine Learning.Spark cluster in HDInsight also includes Anaconda, a Python distribution with different kinds of packages for machine learning. Ihop med det inbyggda stödet för Jupyter- och Zeppelin-anteckningsböcker ger det en miljö att skapa Machine Learning-program i.Couple this with a built-in support for Jupyter and Zeppelin notebooks, and you have an environment for creating machine learning applications.

    Självstudier: Förutsäga temperaturer i en byggnad med hjälp av HVAC-dataTutorial: Predict building temperatures using HVAC data
    Självstudier: Förutsäga resultatet av en livsmedelskontrollTutorial: Predict food inspection results

  • Spark-strömning och dataanalys i realtidSpark streaming and real-time data analysis

    Spark-kluster i HDInsight innehåller omfattande stöd för att skapa lösningar för realtidsanalys.Spark clusters in HDInsight offer a rich support for building real-time analytics solutions. Spark har anslutningsappar för att föra in data från ett flertal källor som Kafka, Flume, Twitter, ZeroMQ och TCP-socket. Med Spark i HDInsight får du dessutom förstklassig stöd för att föra in data från 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. Event Hubs är den vanligast använda kötjänsten på Azure.Event Hubs is the most widely used queuing service on Azure. Det inbyggda stödet för Event Hubs gör Spark-kluster i HDInsight till en perfekt plattform för att skapa en pipeline för realtidsanalyser.Having an out-of-the-box support for Event Hubs makes Spark clusters in HDInsight an ideal platform for building real-time analytics pipeline.

Vad ska jag börja med?Where do I start?

Du kan använda följande artiklar om du vill veta mer om Apache Spark i HDInsight:You can use the following articles to learn more about Apache Spark in HDInsight:

Nästa stegNext Steps

I den här översikten får du viss grundläggande förståelse för Apache Spark i Azure HDInsight.In this overview, you get some basic understanding of Apache Spark in Azure HDInsight. Gå vidare till nästa artikel om du vill lära dig att skapa ett HDInsight Spark-kluster och köra några Spark SQL-frågor:Advance to the next article to learn how to create an HDInsight Spark cluster and run some Spark SQL queries: