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
- Indienen van Spark-batchjobs
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:
- Niet afhankelijk van het aanmaken van andere Azure-resources voor Apache Spark (de Azure Synapse-infrastructuur werkt op de achtergrond).
- Er zijn geen vereiste abonnementsmachtigingen nodig om azure Synapse-gerelateerde resources te maken.
- U hebt geen quota voor SQL-pools nodig.
Nadelen:
- Geen permanente Hive-metastore. Serverloze Spark-rekenkracht biedt alleen ondersteuning voor Spark SQL in het geheugen.
- Geen tabellen of databases beschikbaar.
- Geen Azure Purview-integratie.
- Geen beschikbare gekoppelde services.
- Minder gegevensbronnen en connectoren.
- 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. Controleer of een vereist pakket al beschikbaar is in de Azure Synapse-basisinstallatiekopieën. Ga hiervoor naar deze resources om te bepalen welke pakketten beschikbaar zijn in de basisinstallatiekopieën voor de Apache Spark-versie die wordt gebruikt:
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-images worden niet ondersteund.
De koude opstarttijd van sessies verbeteren bij het gebruik van Conda-pakketten op sessieniveau
Stel de spark.hadoop.aml.enable_cache configuratievariabele in om true 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. Echter duren volgende sessie-koude starts drie tot vijf minuten. 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
- Uitvoeringskernen
- 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-rekenkracht als de gekoppelde Synapse Spark-pool afhankelijk van doorgifte van gebruikersidentiteit voor toegang tot gegevens tijdens interactieve gegevensvoorbereiding.
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 indienen 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