Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Integratie van Azure Machine Learning met Azure Synapse Analytics biedt eenvoudige toegang tot gedistribueerde rekenbronnen via het Apache Spark-framework. Deze integratie biedt deze Apache Spark-computingervaringen:
- Serverloze Spark-rekenkracht
- Gekoppelde Synapse Spark-pool
Serverloze Spark-rekenkracht
Met het Apache Spark-framework is serverloze Spark-berekening van Azure Machine Learning de eenvoudigste manier om gedistribueerde rekentaken uit te voeren in de Azure Machine Learning-omgeving. Azure Machine Learning biedt een volledig beheerd, serverloos Apache Spark-rekencluster op aanvraag. U hoeft geen Azure Synapse-werkruimte en een Synapse Spark-pool te maken.
U kunt resources definiëren, waaronder het exemplaartype en de Apache Spark-runtimeversie. Gebruik deze resources voor toegang tot serverloze Spark-berekeningen in Azure Machine Learning-notebooks voor:
- Interactieve Spark-codeontwikkeling
- Machine Learning-pijplijnen uitvoeren met een Spark-onderdeel
- Verzendingen van Spark-batchtaken
Punten om in overweging te nemen
Serverloze Spark-berekening werkt goed voor de meeste gebruikersscenario's waarvoor snelle toegang tot gedistribueerde computingresources via Apache Spark is vereist. Als u echter een weloverwogen beslissing wilt nemen, moet u rekening houden met de voor- en nadelen van deze aanpak.
Voordelen:
- Er zijn geen afhankelijkheden voor het maken van andere Azure-resources voor Apache Spark (Azure Synapse-infrastructuur werkt onder de schermen).
- Er zijn geen vereiste abonnementsmachtigingen nodig om azure Synapse-gerelateerde resources te maken.
- U hebt geen quota voor SQL-pools nodig.
Nadelen:
- Er ontbreekt een permanente Hive-metastore. Serverloze Spark-rekenkracht biedt alleen ondersteuning voor Spark SQL in het geheugen.
- Er zijn geen beschikbare tabellen of databases.
- Azure Purview-integratie ontbreekt.
- Geen beschikbare gekoppelde services.
- Minder gegevensbronnen en connectors.
- Geen configuratie op poolniveau.
- Geen bibliotheekbeheer op poolniveau.
- Alleen gedeeltelijke ondersteuning voor
mssparkutils.
Netwerkconfiguratie
Als u netwerkisolatie wilt gebruiken met Azure Machine Learning en serverloze Spark-rekenkracht, gebruikt u een beheerd virtueel netwerk.
Inactiviteitsperioden en mechanisme voor afbreken
Bij de eerste keer starten heeft een serverloze Spark-rekenresource (koude start) mogelijk drie tot vijf minuten nodig om de Spark-sessie zelf te starten. Deze vertraging treedt op omdat de geautomatiseerde serverloze Spark-rekenresource, die wordt ondersteund door Azure Synapse, tijd nodig heeft om in te richten. Nadat de serverloze Spark-berekening is ingericht en een Apache Spark-sessie wordt gestart, ondervinden volgende code-uitvoeringen (warm starten) deze vertraging niet.
De Configuratie van de Spark-sessie biedt een optie waarmee een sessietime-out (in minuten) wordt gedefinieerd. De Spark-sessie eindigt na een inactiviteitsperiode die de door de gebruiker gedefinieerde time-out overschrijdt. Als een andere Spark-sessie niet in de volgende tien minuten start, worden de resources die zijn ingericht voor de serverloze Spark-berekening, door het systeem verwijderd.
Nadat het systeem de serverloze Spark-rekenresource heeft afgebroken, vereist het indienen van de volgende job een koude start. In de volgende visualisatie ziet u enkele sessie-inactiviteitsperioden en scenario's voor het afbreken van clusters.
Conda-pakketten op sessieniveau
Een YAML-bestand met Conda-afhankelijkheden kan veel Conda-pakketten op sessieniveau definiëren in een sessieconfiguratie. Er treedt een time-out op voor een sessie als er meer dan 15 minuten nodig is om de Conda-pakketten te installeren die zijn gedefinieerd in het YAML-bestand. Het is belangrijk om eerst te controleren of een vereist pakket al beschikbaar is in de Basisinstallatiekopieën van Azure Synapse. Ga hiervoor naar deze resources om te bepalen welke pakketten beschikbaar zijn in de basisinstallatiekopieën voor de Apache Spark-versie die wordt gebruikt:
- Azure Synapse Runtime voor Apache Spark 3.5
- Azure Synapse Runtime voor Apache Spark 3.4
- Azure Synapse Runtime voor Apache Spark 3.3
Notitie
Voor een Conda-pakket op sessieniveau:
- De Koude start heeft ongeveer 10 tot 15 minuten nodig.
- De Warme start, met hetzelfde Conda-pakket, heeft ongeveer één minuut nodig.
- De Warme start, met een ander Conda-pakket, heeft ongeveer 10 tot 15 minuten nodig.
- Als u een groot pakket installeert of een pakket dat een lange installatietijd nodig heeft, kan dit van invloed zijn op de opstarttijd van het Spark-exemplaar.
- Wijziging van de versie van PySpark, Python, Scala/Java, .NET of Spark wordt niet ondersteund.
- Docker-installatiekopieën worden niet ondersteund.
De koude starttijd van de sessie verbeteren tijdens het gebruik van Conda-pakketten op sessieniveau
U kunt de spark.hadoop.aml.enable_cache configuratievariabele trueinstellen op , om de koude starttijd van de Spark-sessie te verbeteren. Met Conda-pakketten op sessieniveau duurt het doorgaans 10 tot 15 minuten voordat de sessie voor het eerst wordt gestart. Het duurt echter drie tot vijf minuten voordat de volgende sessie koud wordt gestart. Definieer de configuratievariabele in de gebruikersinterface van de sessie configureren onder Configuratie-instellingen.
Gekoppelde Synapse Spark-pool
Wanneer u een Spark-pool maakt in een Azure Synapse-werkruimte, kunt u deze openen in de Azure Machine Learning-werkruimte met de gekoppelde Synapse Spark-pool. Deze optie is geschikt voor gebruikers die een bestaande Synapse Spark-pool opnieuw willen gebruiken.
Als u een Synapse Spark-pool wilt koppelen aan een Azure Machine Learning-werkruimte, moet u meer stappen uitvoeren voordat u de pool in Azure Machine Learning kunt gebruiken voor:
- Interactieve Spark-codeontwikkeling
- Verzending van Spark-batchtaken
- Machine Learning-pijplijnen uitvoeren met een Spark-onderdeel
Een gekoppelde Synapse Spark-pool biedt toegang tot systeemeigen Azure Synapse-functies. U bent verantwoordelijk voor het inrichten, koppelen, configureren en beheren van de Synapse Spark-pool.
De Spark-sessieconfiguratie voor een gekoppelde Synapse Spark-pool biedt ook een optie voor het definiëren van een sessietime-out (in minuten). Het time-outgedrag van de sessie lijkt op de beschrijving in de vorige sectie, behalve dat de bijbehorende resources nooit worden uitgesplitst na de time-out van de sessie.
Spark-clustergrootte definiëren
In Azure Machine Learning Spark-taken kunt u de grootte van het Spark-cluster definiëren met drie parameterwaarden:
- Aantal uitvoerders
- Uitvoerderskernen
- Uitvoerprogrammageheugen
Overweeg een Apache Spark-uitvoerprogramma voor Azure Machine Learning als equivalent aan Azure Spark-werkknooppunten. In een voorbeeld kunnen deze parameters worden uitgelegd. Als u het aantal uitvoerders definieert als 6 (gelijk aan zes werkknooppunten), heeft uw Spark-taak toegang tot een cluster met in totaal 24 kernen en 168 GB geheugen.
Resourcetoegang voor Spark-taken garanderen
Voor toegang tot gegevens en andere resources kan een Spark-taak een beheerde identiteit of een passthrough voor gebruikersidentiteiten gebruiken. Deze tabel bevat een overzicht van de mechanismen die Spark-taken gebruiken voor toegang tot resources.
| Spark-pool | Ondersteunde identiteiten | Standaardidentiteit |
|---|---|---|
| Serverloze Spark-rekenkracht | Gebruikersidentiteit, door de gebruiker toegewezen beheerde identiteit gekoppeld aan de werkruimte | Gebruikersidentiteit |
| Gekoppelde Synapse Spark-pool | Gebruikersidentiteit, door de gebruiker toegewezen beheerde identiteit gekoppeld aan de gekoppelde Synapse Spark-pool, door het systeem toegewezen beheerde identiteit van de gekoppelde Synapse Spark-pool | Door het systeem toegewezen beheerde identiteit van de gekoppelde Synapse Spark-pool |
In dit artikel wordt de toegang tot resources voor Spark-taken beschreven. In een notebooksessie zijn zowel de serverloze Spark-berekening als de gekoppelde Synapse Spark-pool afhankelijk van passthrough voor gebruikersidentiteit voor gegevenstoegang tijdens interactieve gegevens-wrangling.
Notitie
- Wijs de rollen Contributor en Storage Blob Data Contributor (op het Azure-opslagaccount dat wordt gebruikt voor gegevensinvoer en -uitvoer) toe aan de identiteit die u gebruikt voor het indienen van Spark-taken om ervoor te zorgen dat de Spark-taak correct wordt uitgevoerd.
- Als een gekoppelde Synapse Spark-pool verwijst naar een Synapse Spark-pool in een Azure Synapse-werkruimte en die werkruimte een beheerd virtueel netwerk heeft, configureert u een beheerd privé-eindpunt voor een opslagaccount. Deze configuratie zorgt voor gegevenstoegang.
Volgende stappen
- Een Synapse Spark-pool koppelen en beheren in Azure Machine Learning
- Interactieve gegevens wrangling met Apache Spark in Azure Machine Learning
- Spark-taken verzenden in Azure Machine Learning
- Codevoorbeelden voor Spark-taken met behulp van de Azure Machine Learning CLI
- Codevoorbeelden voor Spark-taken met behulp van de Azure Machine Learning Python SDK