Delen via


Wat is Apache Spark in Azure HDInsight

Apache Spark is een framework voor parallelle verwerking dat ondersteuning biedt voor in-memory verwerking om de prestaties van toepassingen voor de analyse van big data te verbeteren. Apache Spark in Azure HDInsight is de Microsoft-implementatie van Apache Spark in de cloud en is een van de verschillende Spark-aanbiedingen in Azure.

  • Met Apache Spark in Azure HDInsight kunt u eenvoudig Spark-clusters maken en configureren, zodat u een volledige Spark-omgeving in Azure kunt aanpassen en gebruiken.

  • Spark-pools in Azure Synapse Analytics gebruiken beheerde Spark-pools om toe te staan dat gegevens worden geladen, gemodelleerd, verwerkt en gedistribueerd voor analytische inzichten in Azure.

  • Apache Spark in Azure Databricks maakt gebruik van Spark-clusters om een interactieve werkruimte te bieden die samenwerking tussen uw gebruikers mogelijk maakt om gegevens uit meerdere gegevensbronnen te lezen en om te zetten in baanbrekende inzichten.

  • Met Spark-activiteiten in Azure Data Factory kunt u Spark-analyses in uw gegevenspijplijn gebruiken met behulp van on-demand of bestaande Spark-clusters.

Met Apache Spark in Azure HDInsight kunt u uw gegevens allemaal in Azure opslaan en verwerken. Spark-clusters in HDInsight zijn compatibel met Azure Blob Storage of Azure Data Lake Storage Gen2, zodat u Spark-verwerking kunt toepassen op uw bestaande gegevensarchieven.

Spark: een geïntegreerd framework.

Volg onze zelfstudie om aan de slag te gaan met Apache Spark in Azure HDInsight om HDInsight Spark-clusters te maken.

Lees het onderstaande artikel voor meer informatie over Apache Spark en de interactie met Azure.

Zie Apache Hadoop-onderdelen en versies in Azure HDInsight voor informatie over de onderdelen en versies.

Wat is Apache Spark?

Spark biedt primitieve typen voor in-memory clustercomputing. Een Spark-taak kan gegevens laden en in het geheugen cachen en er herhaaldelijk query’s op uitvoeren. Verwerkingen in het geheugen (in-memory) zijn veel sneller dan toepassingen die op schijf worden uitgevoerd, zoals Hadoop, dat gegevens deelt via HDFS (Hadoop Distributed File System). Apache Spark kan ook worden geïntegreerd met de programmeertaal Scala waarmee u gedistribueerde gegevenssets zoals lokale verzamelingen kunt bewerken. Het is niet nodig om alles te structureren als toewijzings- en verminderingsbewerkingen.

Traditionele MapReduce versus Spark.

Spark-clusters in HDInsight bieden een volledig beheerde Spark-service. Dit zijn de voordelen van het maken van een Spark-cluster in HDInsight.

Functie Beschrijving
Eenvoudig te maken U kunt binnen enkele minuten een nieuw Spark-cluster in HDInsight maken met Azure Portal, Azure PowerShell of de .NET-SDK voor HDInsight. Zie Aan de slag met Apache Spark-clusters in HDInsight.
Gebruiksgemak Spark-cluster in HDInsight bevat Jupyter-notebooks en Apache Zeppelin-notebooks. U kunt deze notebooks gebruiken voor interactieve gegevensverwerking en visualisatie. Zie Apache Zeppelin-notebooks gebruiken met Apache Spark en Gegevens laden en query's uitvoeren op een Apache Spark-cluster.
REST-API's Apache Spark-clusters in HDInsight omvatten Apache Livy, een op REST API gebaseerde Apache Spark-taakserver om op afstand taken te verzenden en te controleren. Zie Apache Spark REST API gebruiken voor het verzenden van externe taken naar een HDInsight Spark-cluster.
Ondersteuning voor Azure Storage Spark-clusters in HDInsight kunnen Azure Data Lake Storage Gen2 gebruiken als primaire opslag of extra opslag. Zie Azure Data Lake Storage Gen2 voor meer informatie over Data Lake Storage Gen2.
Integratie met Azure-services Spark-clusters in HDInsight worden geleverd met een connector voor Azure Event Hubs. U kunt met de Event Hubs streamingtoepassingen bouwen. Dit is inclusief Apache Kafka, die al beschikbaar is als onderdeel van Spark.
Integratie met IDE's van derden HDInsight biedt verschillende IDE-invoegtoepassingen die handig zijn voor het maken en verzenden van toepassingen naar een HDInsight Spark-cluster. Zie Azure Toolkit voor IntelliJ IDEA gebruiken, Spark & Hive Tools voor VS Code gebruiken en Azure Toolkit voor Eclipse gebruiken voor meer informatie.
Gelijktijdige query's Spark-clusters in HDInsight ondersteunen gelijktijdige query's. Hierdoor kunnen meerdere query's van één gebruiker of meerdere query's van verschillende gebruikers en toepassingen dezelfde clusterresources delen.
Opslaan in cache in SSD's U kunt gegevens in het geheugen of in aan de clusterknooppunten gekoppelde SSD's cachen. Cachen in het geheugen biedt de beste queryprestaties, maar kan duur zijn. Cachen op SSD's is een goed alternatief voor het verbeteren van de prestaties van query's zonder dat er een cluster hoeft te worden gemaakt dat zo groot is dat de volledige gegevensset in het geheugen past. Zie Prestaties van Apache Spark-werkbelastingen verbeteren met behulp van IO Cache van Azure HDInsight.
Integratie met BI-tools Spark-clusters in HDInsight bieden connectors voor BI-tools zoals Power BI voor gegevensanalyse.
Vooraf geladen Anaconda-bibliotheken Spark-clusters in HDInsight worden geleverd met Anaconda-bibliotheken die vooraf zijn geïnstalleerd. Anaconda voorziet in bijna 200 bibliotheken voor machine learning, gegevensanalyse, visualisatie, enzovoort.
Aanpasbaarheid Met HDInsight kunt u het aantal clusterknooppunten dynamisch wijzigen met behulp van de functie Automatische schaalaanpassing. Zie Azure HDInsight-clusters automatisch schalen. Spark-clusters kunnen ook worden verwijderd zonder gegevensverlies, omdat alle gegevens zijn opgeslagen in Azure Blob Storage of Azure Data Lake Storage Gen2.
SLA Spark-clusters in HDInsight worden geleverd met 24/7 ondersteuning en een SLA met een beschikbaarheid van 99,9%.

Apache Spark-clusters in HDInsight omvatten de volgende onderdelen die standaard beschikbaar zijn in de clusters.

HDInsight Spark clustert een ODBC-stuurprogramma voor connectiviteit met BI-hulpprogramma's zoals Microsoft Power BI.

Architectuur van Spark-cluster

De architectuur van HDInsight Spark.

De onderdelen van Spark zijn gemakkelijker te begrijpen als u weet hoe Spark wordt uitgevoerd in HDInsight-clusters.

Spark-toepassingen worden als onafhankelijke sets met processen op een cluster uitgevoerd. Dit wordt gecoördineerd door het SparkContext-object in uw hoofdprogramma (dit wordt het stuurprogramma genoemd).

De SparkContext kan verbinding maken met verschillende typen clustermanagers, die resources bieden voor toepassingen. Voorbeelden van clustermanagers zijn Apache Mesos, Apache Hadoop YARN en de clustermanager van Apache Spark. In HDInsight wordt Spark uitgevoerd met behulp van de YARN-clustermanager. Als er verbinding is, verkrijgt Spark executors op werkknooppunten in het cluster. Dit zijn processen die berekeningen uitvoeren en gegevens opslaan voor uw toepassing. Vervolgens wordt de code van uw toepassing (gedefinieerd in JAR- of Python-bestanden die worden doorgegeven aan SparkContext) verstuurd naar de executor. Ten slotte verzendt SparkContext taken naar de executors om uit te voeren.

SparkContext voert de hoofdfunctie van de gebruiker uit en voert de verschillende parallelle bewerkingen uit op de werkknooppunten. Vervolgens verzamelt SparkContext de resultaten van de bewerkingen. De werkrolknooppunten lezen en schrijven gegevens van en naar het HDFS (Hadoop Distributed File System). De werkrolknooppunten plaatsen getransformeerde gegevens ook in het geheugen als RDD’s (Resilient Distributed Datasets).

SparkContext maakt verbinding met de Spark-master en converteert een toepassing naar een Directed Acyclic Graph (DAG) van afzonderlijke taken die worden uitgevoerd in een uitvoerproces op de werkknooppunten. Elke toepassing krijgt zijn eigen executorprocessen, die actief blijven tijdens de hele toepassing en taken uitvoeren in meerdere threads.

Gebruiksscenario's voor Spark in HDInsight

Spark-clusters in HDInsight maken de volgende belangrijke scenario's mogelijk:

Interactieve gegevensanalyse en BI

Apache Spark in HDInsight slaat gegevens op in Azure Blob Storage en Azure Data Lake Storage Gen2. Zakelijke deskundigen en belangrijke besluitvormers kunnen met die gegevens rapporten analyseren en bouwen en Microsoft Power BI gebruiken om interactieve rapporten te bouwen op basis van de geanalyseerde gegevens. Analisten kunnen beginnen met ongestructureerde/semi-gestructureerde gegevens in clusteropslag, een schema voor de gegevens definiëren met behulp van notebooks, en vervolgens gegevensmodellen bouwen met behulp van Microsoft Power BI. Spark-clusters in HDInsight ondersteunen ook veel BI-hulpprogramma's van derden. zoals Tableau, waarmee gegevensanalisten, zakelijke deskundigen en belangrijke besluitvormers gemakkelijker kunnen werken.

Machine Learning in Spark

Apache Spark wordt meegeleverd met MLlib. MLlib is een bibliotheek voor machine learning die boven op Spark is gebouwd. U kunt deze bibliotheek gebruiken vanuit een Spark-cluster in HDInsight. Spark-clusters in HDInsight bevatten ook Anaconda, een Python-distributie met verschillende soorten pakketten voor machine learning. Gecombineerd met ingebouwde ondersteuning voor Jupyter- en Zeppelin-notebooks beschikt u hiermee over een omgeving voor het maken van machine learning-toepassingen.

Streaming en realtime gegevensanalyse in Spark

Spark-clusters in HDInsight bieden uitgebreide ondersteuning voor het bouwen van realtime analyseoplossingen. Spark heeft al connectors voor het opnemen van gegevens uit veel bronnen, zoals Kafka, Flume, X, ZeroMQ of TCP-sockets. Met Spark in HDInsight wordt hoogwaardige ondersteuning voor het op van gegevens uit Azure Event Hubs toegevoegd. Event Hubs is de meest gebruikte wachtrijservice in Azure. Dankzij volledige ondersteuning voor Event Hubs zijn Spark-clusters in HDInsight een ideaal platform voor het bouwen van een realtime analysepijplijn.

Volgende stappen

In dit overzicht hebt u algemene informatie gekregen over het gebruik van Apache Spark in Azure HDInsight. U kunt de volgende artikelen gebruiken om meer te weten te komen over Apache Spark in HDInsight, en u kunt een HDInsight Spark-cluster maken en een aantal voorbeelden van Spark-query's uitvoeren: