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 eller Azure Data Lake Storage Gen2, så att du kan använda Spark-bearbetning på dina befintliga datalager.
Kom igång med Apache Spark i Azure HDInsight genom att följa vår självstudiekurs för att skapa HDInsight Spark-kluster.
Om du vill ha information om Apache Spark och hur det interagerar med Azure kan du fortsätta att läsa 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.
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 Komma igång med Apache Spark-kluster i HDInsight. |
Användarvänlighet | 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 i 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 Gen2 som både primär lagring eller ytterligare lagring. 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 hjälp av 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, Use Spark & Hive Tools for VS Code (Använda Azure Toolkit for IntelliJ IDEA), Använda Spark & Hive Tools för VS Code 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 för 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 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.
- Spark Core. Omfattar Spark Core, Spark SQL, Spark-API:er för strömning, GraphX och MLlib.
- Anaconda
- Apache Livy
- Jupyter Notebook
- Apache Zeppelin Notebook
HDInsight Spark klustrar en ODBC-drivrutin för anslutning från BI-verktyg som Microsoft Power BI.
Spark-klusterarkitektur
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 med processer i ett kluster. Koordineras av SparkContext-objektet i ditt huvudprogram (kallas drivrutinsprogrammet).
SparkContext kan ansluta till flera typer av klusterhanterare, vilket 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 körprocess på arbetsnoderna. Varje program får sina egna körprocesser, som håller sig 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 och 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 de 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 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.
- Självstudie: Förutsäga byggnadstemperaturer med hjälp av HVAC-data
- Självstudie: Förutsäga resultat av livsmedelskontroll
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, X, ZeroMQ eller TCP-socketar. Spark i HDInsight lägger till förstklassigt stöd för inmatning av data från Azure Event Hubs. Event Hubs är den vanligast använda kötjänsten på Azure. Att ha fullständigt stöd för Event Hubs gör Spark-kluster i HDInsight till en idealisk plattform för att skapa pipeline för realtidsanalys.
Nästa steg
I den här översikten har du en grundläggande förståelse för 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 Exempel på Spark-frågor:
- Snabbstart: Skapa ett Apache Spark-kluster i HDInsight och kör interaktiva frågor med Hjälp av Jupyter
- Självstudie: Läsa in data och köra frågor på ett Apache Spark-jobb med Hjälp av Jupyter
- Självstudier: Visualisera Spark-data med Power BI
- Självstudie: Förutsäga byggnadstemperaturer med hjälp av HVAC-data
- Optimera Spark-jobb för prestanda