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.
Van toepassing op:✅ Fabric Data Engineering and Data Science
Met de Fabric Livy-API kunt u Spark-batch- en sessietaken rechtstreeks vanaf een externe client verzenden naar Fabric Spark-berekening, zonder de Fabric-portal te gebruiken. In dit artikel maakt u een Lakehouse, verifieert u met een Microsoft Entra token, detecteert u het Livy-API-eindpunt en verzendt en bewaakt u een Spark-sessietaak.
Vereiste voorwaarden
Fabric Premium- of proefcapaciteit met een Lakehouse
De tenantbeheerdersinstelling voor Livy-API inschakelen
Een externe client, zoals Visual Studio Code met ondersteuning voor Jupyter-notebooks, PySpark en Microsoft Authentication Library (MSAL) voor Python
Een Microsoft Entra app-token. Register van een toepassing met de Microsoft identity platform
Of een Microsoft Entra SPN-token (Service Principal). Toevoegen en toepassingsreferenties beheren in Microsoft Entra ID
Een REST API-client kiezen
U kunt communiceren met de Livy-API vanaf elke client die HTTP-aanvragen ondersteunt, inclusief hulpprogramma's zoals curl of elke taal met een HTTP-bibliotheek. In de voorbeelden in dit artikel wordt Visual Studio Code gebruikt met Jupyter Notebooks, PySpark en de Microsoft Authentication Library (MSAL) voor Python.
De Livy-API-aanvragen autoriseren
Als u de Livy-API wilt gebruiken, moet u uw aanvragen verifiëren met behulp van Microsoft Entra ID. Er zijn twee autorisatiemethoden beschikbaar:
Entra SPN-token (service-principal): de toepassing authenticeert zichzelf met behulp van inloggegevens zoals een clientgeheim of certificaat. Deze methode is geschikt voor geautomatiseerde processen en achtergrondservices waarbij geen tussenkomst van de gebruiker is vereist.
Entra-app-token (gedelegeerd): de toepassing handelt namens een aangemelde gebruiker. Deze methode is geschikt wanneer u wilt dat de toepassing toegang heeft tot resources met de machtigingen van de geverifieerde gebruiker.
Kies de autorisatiemethode die het beste bij uw scenario past en volg de bijbehorende sectie hieronder.
De Livy-API-aanvragen autoriseren met een Microsoft Entra SPN-token
Als u wilt werken met Fabric API's, waaronder de Livy-API, moet u eerst een Microsoft Entra toepassing maken en een geheim maken en dat geheim gebruiken in uw code. Uw toepassing moet voldoende zijn geregistreerd en geconfigureerd om API-aanroepen uit te voeren op Fabric. Zie voor meer informatie Toevoegen en toepassingsreferenties beheren in Microsoft Entra ID
Nadat u de app-registratie hebt gemaakt, maakt u een clientgeheim.
Wanneer u het cliëntgeheim aanmaakt, zorg ervoor dat u de waarde kopieert. Je hebt dit later in de code nodig en het geheim kan niet opnieuw worden gezien. U hebt ook de applicatie-id (client) en de directory (tenant-id) nodig naast het geheim in uw code.
Voeg vervolgens de service-principal toe aan uw werkruimte.
Zoek de Microsoft Entra-toepassing met behulp van de applicatie (client) ID of -naam, voeg deze toe aan de werkruimte en zorg ervoor dat de service-principal de Contributor-rechten heeft.
De Livy-API-aanvragen autoriseren met een Entra-app-token
Als u wilt werken met Fabric API's, waaronder de Livy-API, moet u eerst een Microsoft Entra-toepassing maken en een token verkrijgen. Uw toepassing moet voldoende zijn geregistreerd en geconfigureerd om API-aanroepen uit te voeren op Fabric. Zie Register van een toepassing met de Microsoft identity platform voor meer informatie.
De volgende Microsoft Entra bereikmachtigingen zijn vereist voor het uitvoeren van Livy-API-taken:
Vereiste bereiken
| Scope | Beschrijving |
|---|---|
Lakehouse.Execute.All |
Voer bewerkingen uit in Fabric lakehouses. |
Lakehouse.Read.All |
Lees de metagegevens van Lakehouse. |
Code.AccessFabric.All |
Hiermee kunt u toegangstokens voor Microsoft Fabric verkrijgen. Vereist voor alle Livy-API-bewerkingen. |
Code.AccessStorage.All |
Hiermee kunt u toegangstokens krijgen tot OneLake en Azure-opslag. Vereist voor het lezen en schrijven van gegevens in lakehouses. |
Optionele code.* bereiken
Voeg deze scopes alleen toe als uw Spark-taken tijdens de uitvoering toegang nodig hebben tot de bijbehorende Azure services.
| Scope | Beschrijving | Wanneer gebruiken |
|---|---|---|
Code.AccessAzureKeyvault.All |
Hiermee kunt u toegangstokens ophalen voor Azure Key Vault. | Met uw Spark-code worden geheimen, sleutels of certificaten opgehaald uit Azure Key Vault. |
Code.AccessAzureDataLake.All |
Hiermee kunt u toegangstokens ophalen voor Azure Data Lake Storage Gen1. | Uw Spark-code leest van of schrijft naar Azure Data Lake Storage Gen1 accounts. |
Code.AccessAzureDataExplorer.All |
Hiermee kunt u toegangstokens ophalen voor Azure Data Explorer (Kusto). | Uw Spark-code voert query's uit of neemt gegevens op van/naar Azure Data Explorer clusters. |
Code.AccessSQL.All |
Hiermee kunt u toegangstokens ophalen voor Azure SQL. | Uw Spark-code moet verbinding maken met Azure SQL databases. |
Wanneer u uw applicatie registreert, hebt u zowel de applicatie-id (client) als de directory-id (tenant) nodig.
De geverifieerde gebruiker die de Livy-API aanroept, moet lid zijn van de werkruimte waarin zowel de API als de gegevensbronitems zich bevinden met de rol Inzender. Zie Gebruikers toegang geven tot werkruimten voor meer informatie.
Inzicht in Code.* scopes voor de Livy API
Wanneer uw Spark-taken worden uitgevoerd via de Livy-API, bepalen de Code.* toegangsrechten tot welke externe services de Spark Runtime namens de geverifieerde gebruiker toegang kan krijgen. Er zijn twee vereist; de rest is optioneel, afhankelijk van uw workload.
Vereiste code.* bereiken
| Scope | Beschrijving |
|---|---|
Code.AccessFabric.All |
Hiermee kunt u toegangstokens voor Microsoft Fabric verkrijgen. Vereist voor alle Livy-API-bewerkingen. |
Code.AccessStorage.All |
Hiermee kunt u toegangstokens krijgen tot OneLake en Azure-opslag. Vereist voor het lezen en schrijven van gegevens in lakehouses. |
Optionele code.* bereiken
Voeg deze scopes alleen toe als uw Spark-taken tijdens de uitvoering toegang nodig hebben tot de bijbehorende Azure services.
| Scope | Beschrijving | Wanneer gebruiken |
|---|---|---|
Code.AccessAzureKeyvault.All |
Hiermee kunt u toegangstokens ophalen voor Azure Key Vault. | Met uw Spark-code worden geheimen, sleutels of certificaten opgehaald uit Azure Key Vault. |
Code.AccessAzureDataLake.All |
Hiermee kunt u toegangstokens ophalen voor Azure Data Lake Storage Gen1. | Uw Spark-code leest van of schrijft naar Azure Data Lake Storage Gen1 accounts. |
Code.AccessAzureDataExplorer.All |
Hiermee kunt u toegangstokens ophalen voor Azure Data Explorer (Kusto). | Uw Spark-code voert query's uit of neemt gegevens op van/naar Azure Data Explorer clusters. |
Code.AccessSQL.All |
Hiermee kunt u toegangstokens ophalen voor Azure SQL. | Uw Spark-code moet verbinding maken met Azure SQL databases. |
Notitie
De Lakehouse.Execute.All en Lakehouse.Read.All bereiken zijn vereist, maar maken geen deel uit van de Code.* familie. Ze verlenen respectievelijk machtigingen voor het uitvoeren van bewerkingen in en het lezen van metagegevens uit Fabric lakehouses.
Het Fabric Livy-API-eindpunt detecteren
Een Lakehouse-artefact is vereist voor toegang tot het Livy-eindpunt. Zodra het Lakehouse is gemaakt, kan het Livy-API-eindpunt zich in het instellingenvenster bevinden.
Het eindpunt van de Livy-API volgt dit patroon:
https://api.fabric.microsoft.com/v1/workspaces/><ws_id>/lakehouses/<lakehouse_id>/livyapi/versions/2023-12-01/
De URL wordt voorzien van <sessies> of <batches>, afhankelijk van uw keuze.
De Livy API Swagger-bestanden downloaden
De volledige swagger-bestanden voor de Livy-API zijn hier beschikbaar.
Sessies met hoge mate van gelijktijdigheid
Ondersteuning voor hoge gelijktijdigheid (HC) maakt gelijktijdige Spark-uitvoering mogelijk doordat clients meerdere onafhankelijke uitvoeringscontexten kunnen verkrijgen, ook wel gelijktijdigheidssessies genoemd.
Elke HC-sessie vertegenwoordigt een logische uitvoeringscontext die is toegewezen aan een Spark REPL (Read-Eval-Print Loop). Onder verschillende HC-sessies ingediende Spark-instructies kunnen gelijktijdig worden uitgevoerd.
Dit maakt het volgende mogelijk:
- Parallelle uitvoering in HC-sessies
- Voorspelbaar resourcegebruik
- Isolatie tussen gelijktijdige verzoeken
- Lagere overhead vergeleken met het maken van een nieuwe sessie per aanvraag
Als u één sessie gebruikt voor alle aanvragen, worden instructies opeenvolgend uitgevoerd. Het maken van een nieuwe sessie voor elke aanvraag introduceert onnodige overhead en onderbezetting van resources.
Notitie
HC-sessieverwerving is niet idempotent. Meerdere acquisitieaanvragen met dezelfde sessionTag leveren verschillende HC session IDs, ook al worden ze ondersteund door dezelfde onderliggende Livy-sessie.
Zie Get gestart met de Livy-API voor Fabric High Concurrency Sessions voor stapsgewijze instructies met voorbeeldcode. Zie High gelijktijdigheidsondersteuning in de Fabric Livy-API voor een conceptueel overzicht.
Een Livy-API-taak indienen
Nu de installatie van de Livy-API is voltooid, kunt u ervoor kiezen om batch- of sessietaken in te dienen.
Integratie met Fabric-omgevingen
Deze Livy API-sessie wordt standaard uitgevoerd op basis van de standaardstartgroep voor de werkruimte. U kunt ook Fabric Omgevingen Maken, configureren en gebruiken van een omgeving in Microsoft Fabric om de Spark-pool aan te passen die door de Livy API-sessie voor deze Spark-taken wordt gebruikt.
Als u een Fabric Environment in een Livy Spark-sessie wilt gebruiken, werk het json-bestand bij om deze payload op te nemen.
create_livy_session = requests.post(livy_base_url, headers = headers, json={
"conf" : {
"spark.fabric.environmentDetails" : "{\"id\" : \""EnvironmentID""}"}
}
)
Als u een Fabric Environment in een Livy Spark-batchsessie wilt gebruiken, werkt u de json-nettolading bij zoals hier wordt weergegeven:
payload_data = {
"name":"livybatchdemo_with"+ newlakehouseName,
"file":"abfss://YourABFSPathToYourPayload.py",
"conf": {
"spark.targetLakehouse": "Fabric_LakehouseID",
"spark.fabric.environmentDetails" : "{\"id\" : \""EnvironmentID"\"}" # Replace "EnvironmentID" with your environment ID, or remove this line to use starter pools instead of an environment
}
}
De aanvraaggeschiedenis bewaken
U kunt de Monitoring Hub gebruiken om uw eerdere Livy API-inzendingen te bekijken en fouten in inzendingen op te sporen.
Gerelateerde inhoud
- Documentatie voor Apache Livy REST API
- Aan de slag met beheerinstellingen voor uw Fabric-capaciteit
- Apache Spark-werkruimtebeheerinstellingen in Microsoft Fabric
- Register van een toepassing met de Microsoft identity platform
- Microsoft Entra overzicht van machtigingen en toestemming
- Fabric REST API-bereiken
- Overzicht van Apache Spark-bewaking
- Details van de Apache Spark-toepassing