Vad är Apache Spark i 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 i Azure HDInsight är Microsofts implementering av Apache Spark i molnet och är ett av flera Spark-erbjudanden i Azure.

  • Apache Spark i Azure HDInsight gör det enkelt att skapa och konfigurera Spark-kluster så att du kan anpassa och använda en fullständig Spark-miljö i Azure.

  • Spark-pooler i Azure Synapse Analytics använder hanterade Spark-pooler för att tillåta att data läses in, modelleras, bearbetas och distribueras för analysinsikter i Azure.

  • Apache Spark på Azure Databricks använder Spark-kluster för att tillhandahålla en interaktiv arbetsyta som möjliggör samarbete mellan dina användare för att läsa data från flera datakällor och omvandla dem till banbrytande insikter.

  • Med Spark-aktiviteter i Azure Data Factory kan du använda Spark-analys i din datapipeline med hjälp av på begäran eller befintliga Spark-kluster.

Med Apache Spark i Azure HDInsight kan du lagra och bearbeta dina data i Azure. Spark-kluster i HDInsight är kompatibla med Azure Blob Storage, Azure Data Lake Storage Gen1 eller Azure Data Lake Storage Gen2, så att du kan använda Spark-bearbetning på dina befintliga datalager.

Spark: a unified framework

Kom igång med Apache Spark i Azure HDInsight genom att följa vår självstudie för att skapa HDInsight Spark-kluster.

Mer information om Apache Spark och hur det interagerar med Azure finns i artikeln nedan.

Information om komponenter och versionshantering finns i Apache Hadoop-komponenter och versioner i Azure HDInsight.

Vad är Apache Spark?

Spark tillhandahåller primitiver för klusterbearbetning i minnet. Ett Spark-jobb kan läsa in och cachelagra data i minnet och köra frågor mot det upprepade gånger. 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). Spark är integrerat i programmeringsspråket Scala. På så sätt kan du bearbeta distribuerade datauppsättningar på samma sätt som lokala samlingar. Det finns inget behov av att strukturera det hela i mappnings- och reduceringsåtgärder.

Traditional MapReduce vs. Spark

Med Spark-kluster HDInsight får du tillgång till en helt hanterad Spark-tjänst. Fördelarna med att skapa ett Spark-kluster i HDInsight visas här.

Funktion Beskrivning
Enkelt att skapa 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. Se Kom igång med Apache Spark-kluster i HDInsight.
Enkel att använda Spark-kluster i HDInsight innehåller Jupyter Notebooks och Apache Zeppelin Notebooks. Du kan de här anteckningsböckerna för interaktiv databehandling och visualisering. Se Använda Apache Zeppelin-notebook-filer med Apache Spark och Läs in data och kör frågor på ett Apache Spark-kluster.
REST API:er HDInsight Spark innehåller Apache Livy, en REST-API-baserad Spark-jobbserver för fjärrsändning och -övervakning av jobb. Se Använda REST-API:et för Apache Spark för att skicka fjärrstyrda jobb till ett HDInsight Spark-kluster.
Stöd för Azure Storage Spark-kluster i HDInsight kan använda Azure Data Lake Storage Gen1/Gen2 som både primär lagring eller ytterligare lagring. Mer information om Data Lake Storage Gen1 finns i Azure Data Lake Storage Gen1. Mer information om Data Lake Storage Gen2 finns i Azure Data Lake Storage Gen2.
Integrering med Azure-tjänster Spark-kluster i HDInsight levereras med en anslutningsapp för Azure Event Hubs. Du kan skapa strömmande program med Event Hubs. Inklusive Apache Kafka, som redan är tillgängligt som en del av Spark.
Integrering med tredje parts 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. Mer information finns i Använda Azure Toolkit for IntelliJ IDEA, Använda Spark & Hive Tools för VSCode och Använda Azure Toolkit for Eclipse.
Samtidiga frågor Spark-kluster i HDInsight har stöd för samtidiga frågor. 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.
Cachelagring i SSD:er Du kan välja att cachelagrade data i minnet eller i SSD:er anslutna till klusternoderna. Cachelagring i minnet ger bästa frågeprestanda, men kan vara dyrt. 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. Se Förbättra prestanda för Apache Spark-arbetsbelastningar med Azure HDInsight IO Cache.
Integrering med BI-verktyg Spark-kluster i HDInsight tillhandahåller anslutningsappar för BI-verktyg som Power BI för dataanalys.
Förinstallerade Anaconda-bibliotek Spark-kluster i HDInsight kommer med förinstallerade Anaconda-bibliotek. Anaconda tillhandahåller nära 200 bibliotek för maskininlärning, dataanalys, visualisering och så vidare.
Anpassningsförmåga Med HDInsight kan du ändra antalet klusternoder dynamiskt med funktionen Autoskalning. Se Skala Azure HDInsight-kluster automatiskt. Spark-kluster kan också tas bort utan dataförlust eftersom alla data lagras i Azure Blob Storage, Azure Data Lake Storage Gen1 eller Azure Data Lake Storage Gen2.
SLA Spark-kluster på HDInsight levereras med dygnet runt-support veckans alla dagar och ett serviceavtal för 99,9 % drifttid.

Apache Spark-kluster i HDInsight innehåller följande komponenter som är tillgängliga i klustren som standard.

HDInsight Spark klustrar en ODBC-drivrutin för anslutning från BI-verktyg som Microsoft Power BI.

Spark-klusterarkitektur

The architecture of HDInsight Spark

Det är enkelt att förstå komponenterna i Spark genom att förstå hur Spark körs på HDInsight-kluster.

Spark-program körs som oberoende uppsättningar processer i ett kluster. Koordineras av SparkContext-objektet i ditt huvudprogram (kallas drivrutinsprogrammet).

SparkContext kan ansluta till flera typer av klusterhanterare, som ger resurser mellan program. Bland dessa klusterhanterare finns Apache Mesos, Apache Hadoop YARN och Spark-klusterhanteraren. I HDInsight körs Spark ovanpå YARN-klusterhanteraren. 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. Därefter skickar den din programkod (definieras av JAR- eller Python-filer som överförts till SparkContext) till exekverarna. Slutligen skickar SparkContext uppgifter till de exekverare som ska köras.

SparkContext kör användarens main-funktion och utför de olika parallella åtgärderna på arbetsnoderna. Drivrutinen samlar sedan in åtgärdernas resultat. Arbetsnoderna läser data från och skriver data till HDFS-filsystemet (Hadoop Distributed File System). Arbetsnoderna cachelagrar också omvandlade data i minnet som RDD-datauppsättningar (Resilient Distributed Dataset).

SparkContext ansluter till Spark-huvudservern och ansvarar för att konvertera ett program till en riktad graf (DAG) med enskilda uppgifter. Uppgifter som körs i en executor-process på arbetsnoderna. Varje program får sina egna executor-processer. Som stannar uppe under hela programmet och kör uppgifter i flera trådar.

Spark i HDInsight – användningsfall

Spark-kluster i HDInsight möjliggör följande huvudsakliga scenarier:

Interaktiv dataanalys och BI

Apache Spark i HDInsight lagrar data i Azure Blob Storage, Azure Data Lake Gen1 eller Azure Data Lake Storage Gen2. Affärsexperter och viktiga beslutsfattare kan analysera och skapa rapporter över dessa data. Och använd Microsoft Power BI för att skapa interaktiva rapporter från analyserade 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. Spark-kluster i HDInsight har också stöd för många BI-verktyg från tredje part. Till exempel Tableau, vilket gör det enklare för dataanalytiker, affärsexperter och viktiga beslutsfattare.

Spark-maskininlärning

Apache Spark levereras med MLlib. MLlib är ett maskininlärningsbibliotek som bygger på Spark och som du kan använda från ett Spark-kluster i HDInsight. Spark-kluster i HDInsight innehåller även Anaconda, en Python-distribution med olika typer av paket för maskininlärning. Och med inbyggt stöd för Jupyter- och Zeppelin-notebook-filer har du en miljö för att skapa maskininlärningsprogram.

Spark-strömning och dataanalys i realtid

Spark-kluster i HDInsight innehåller omfattande stöd för att skapa lösningar för realtidsanalys. Spark har redan anslutningsappar för att mata in data från många källor som Kafka, Flume, Twitter, ZeroMQ eller TCP-sockets. Spark i HDInsight lägger till förstklassigt stöd för att mata in data från Azure Event Hubs. Event Hubs är den vanligast använda kötjänsten på Azure. Med fullständigt stöd för Event Hubs blir Spark-kluster i HDInsight en perfekt plattform för att skapa pipeline för realtidsanalys.

Nästa steg

I den här översikten har du grundläggande kunskaper om Apache Spark i Azure HDInsight. Du kan använda följande artiklar för att lära dig mer om Apache Spark i HDInsight, och du kan skapa ett HDInsight Spark-kluster och köra några Spark-exempelfrågor ytterligare: