Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Sovellettavissa: ✅ Fabric Data Engineering and Data Science
Fabric Livy API mahdollistaa Spark-erä- ja sessiotöiden lähettämisen etäasiakkaalta suoraan Fabric Spark -laskentaan ilman Fabric-portaalin käyttöä. Tässä artikkelissa luot Lakehousen, todennat Microsoft Entra -tokenilla, löydät Livy API -päätepisteen sekä lähetät ja valvot Spark-istuntotyötä.
Edellytykset
Fabric Premium tai koekapasiteetti Lakehousen kanssa
Ota käyttöön Tenant Admin -asetus Livy API:lle
Etäasiakas, kuten Visual Studio Code, jossa on Jupyter-muistikirjatuki, PySpark ja
Microsoft Authentication Library (MSAL) Python Joko Microsoft Entra -sovellustoken.
Rekisteröi hakemus Microsoftin käyttäjätietoympäristö Tai Microsoft Entra SPN (Service Principal) -tokenin.
Lisää ja hallinnoi sovellustunnistetietoja Microsoft Entra ID
Valitse REST API -asiakas
Voit olla vuorovaikutuksessa Livy-rajapinnan kanssa mistä tahansa HTTP-pyyntöjä tukevasta asiakkaasta, mukaan lukien työkalut kuten curl tai mikä tahansa HTTP-kirjasto sisältävä kieli. Tämän artikkelin esimerkeissä käytetään Visual Studio Code yhdessä Jupyter Notebooks, PySpark ja Microsoft Authentication Library (MSAL) kanssa Python kanssa.
Kuinka valtuuttaa Livy API -pyynnöt
Livy API:n käyttämiseksi sinun täytyy todentaa pyyntösi Microsoft Entra ID:llä. Saatavilla on kaksi valtuutusmenetelmää:
Entra SPN Token (Service Principal): Sovellus todentaa itsensä käyttämällä tunnistetietoja, kuten asiakassalaisuutta tai varmennetta. Tämä menetelmä soveltuu automatisoituihin prosesseihin ja taustapalveluihin, joissa käyttäjän vuorovaikutusta ei tarvita.
Entra-sovellustoken (delegoitu): Sovellus toimii kirjautuneen käyttäjän puolesta. Tämä menetelmä soveltuu silloin, kun haluat sovelluksen käyttävän resursseja todennuksen saaneen käyttäjän oikeuksilla.
Valitse valtuutusmenetelmä, joka parhaiten sopii tilanteeseesi, ja seuraa alla olevaa vastaavaa osiota.
Kuinka valtuuttaa Livy API -pyynnöt Microsoft Entra SPN Tokenilla
Työskennelläksesi Fabric API:n, mukaan lukien Livy API:n, kanssa sinun täytyy ensin luoda Microsoft Entra -sovellus, luoda salaisuus ja käyttää sitä koodissasi. Sovelluksesi täytyy olla rekisteröity ja konfiguroitu asianmukaisesti, jotta se voi suorittaa API-kutsuja Fabric:ta vastaan. Lisätietoja löytyy osoitteesta
Kun olet luonut sovelluksen rekisteröinnin, luo asiakassalaisuus.
Kun luot asiakassalaisuuden, muista kopioida arvo. Tätä tarvitaan myöhemmin koodin sisällä, eikä salaista koodia voi enää nähdä. Tarvitset myös sovelluksen (asiakas) ID:n ja Directory (tenant ID) salaisuuden lisäksi koodissasi.
Seuraavaksi lisää palvelupää työtilaasi.
Etsi Microsoft Entra -sovellusta käyttäen sovelluksen (asiakas) ID:tä tai nimeä, lisää se työtilaan ja varmista, että palvelupäämiehellä on Contributor-oikeudet.
Livy-ohjelmointirajapintapyyntöjen valtuuttaminen Entra-sovellustunnuksen avulla
Työskennelläksesi Fabric API:n, mukaan lukien Livy API:n, kanssa sinun täytyy ensin luoda Microsoft Entra -sovellus ja hankkia token. Sovelluksesi täytyy olla rekisteröity ja konfiguroitu asianmukaisesti, jotta se voi suorittaa API-kutsuja Fabric:ta vastaan. Lisätietoja löytyy osoitteesta Rekisteröi hakemus Microsoftin käyttäjätietoympäristö:lle.
Seuraavat Microsoft Entra scope -oikeudet vaaditaan Livy API -töiden suorittamiseen:
Vaaditut tähtäimet
| Käyttöalue | Description |
|---|---|
Lakehouse.Execute.All |
Toteuta toimintaa Fabric-järventaloissa. |
Lakehouse.Read.All |
Lue lakehouse-metatiedot. |
Code.AccessFabric.All |
Mahdollistaa pääsytokenien saamisen Microsoft Fabric -sovellukseen. Vaaditaan kaikissa Livy API -toiminnoissa. |
Code.AccessStorage.All |
Mahdollistaa pääsytokenien saamisen OneLake- ja Azure-tallennustilaan. Vaaditaan datan lukemiseen ja kirjoittamiseen järvenmökissä. |
Valinnainen koodi.* kaukoputket
Lisää nämä scopet vain, jos Spark-tehtäväsi tarvitsevat pääsyn vastaaviin Azure-palveluihin ajonaikaisesti.
| Käyttöalue | Description | Milloin kannattaa käyttää |
|---|---|---|
Code.AccessAzureKeyvault.All |
Mahdollistaa pääsytokenien saamisen Azure Key Vault:iin. | Spark-koodisi hakee salaisuuksia, avaimia tai sertifikaatteja Azure Key Vault -ohjelmasta. |
Code.AccessAzureDataLake.All |
Mahdollistaa pääsytokenien saamisen Azure Data Lake Storage Gen1:een. | Spark-koodisi lukee tai kirjoittaa Azure Data Lake Storage Gen1 -tileille. |
Code.AccessAzureDataExplorer.All |
Mahdollistaa pääsytokenien saamisen Azure Data Explorer (Kusto) -sovellukseen. | Spark-koodisi kyselee tai vastaanottaa dataa Azure Data Explorer -klustereihin tai sieltä pois. |
Code.AccessSQL.All |
Mahdollistaa pääsytokenien saamisen Azure SQL:ään. | Spark-koodisi täytyy yhdistää Azure SQL -tietokantoihin. |
Kun rekisteröit hakemuksesi, tarvitset sekä sovelluksen (asiakas) ID:n että Directory (vuokralaisen) ID:n.
Livy-ohjelmointirajapintaa kutsuvan todennetun käyttäjän on oltava työtilan jäsen, jossa sekä ohjelmointirajapinnan että tietolähteen kohteet sijaitsevat Osallistuja-roolissa. Lisätietoja on artikkelissa Työtilojen käyttöoikeuksien antaminen käyttäjille.
Understanding Code.* Scopes Livy API:lle
Kun Spark-työsi suoritetaan Livy API:n kautta, scopet Code.* ohjaavat, mitä ulkoisia palveluita Spark Runtime voi käyttää todennuksen saaneen käyttäjän puolesta. Kaksi vaaditaan; Loput ovat vapaaehtoisia riippuen työmäärästäsi.
Vaadittu koodi.* scopes
| Käyttöalue | Description |
|---|---|
Code.AccessFabric.All |
Mahdollistaa pääsytokenien saamisen Microsoft Fabric -sovellukseen. Vaaditaan kaikissa Livy API -toiminnoissa. |
Code.AccessStorage.All |
Mahdollistaa pääsytokenien saamisen OneLake- ja Azure-tallennustilaan. Vaaditaan datan lukemiseen ja kirjoittamiseen järvenmökissä. |
Valinnainen koodi.* kaukoputket
Lisää nämä scopet vain, jos Spark-tehtäväsi tarvitsevat pääsyn vastaaviin Azure-palveluihin ajonaikaisesti.
| Käyttöalue | Description | Milloin kannattaa käyttää |
|---|---|---|
Code.AccessAzureKeyvault.All |
Mahdollistaa pääsytokenien saamisen Azure Key Vault:iin. | Spark-koodisi hakee salaisuuksia, avaimia tai sertifikaatteja Azure Key Vault -ohjelmasta. |
Code.AccessAzureDataLake.All |
Mahdollistaa pääsytokenien saamisen Azure Data Lake Storage Gen1:een. | Spark-koodisi lukee tai kirjoittaa Azure Data Lake Storage Gen1 -tileille. |
Code.AccessAzureDataExplorer.All |
Mahdollistaa pääsytokenien saamisen Azure Data Explorer (Kusto) -sovellukseen. | Spark-koodisi kyselee tai vastaanottaa dataa Azure Data Explorer -klustereihin tai sieltä pois. |
Code.AccessSQL.All |
Mahdollistaa pääsytokenien saamisen Azure SQL:ään. | Spark-koodisi täytyy yhdistää Azure SQL -tietokantoihin. |
Muistiinpano
Myös Lakehouse.Execute.All ja Lakehouse.Read.All kaukoputket ovat pakollisia, mutta ne eivät Code.* kuulu perheeseen. Ne myöntävät luvan suorittaa operaatioita ja lukea metatietoja Fabric-järvitaloista.
Kuinka löytää Fabric Livy API -päätepiste
Lakehouse-artefakti vaaditaan Livy-päätepisteen käyttämiseksi. Kun Lakehouse on luotu, Livy-ohjelmointirajapinnan päätepiste voi sijaita asetuspaneelin sisällä.
Livy-ohjelmointirajapinnan päätepiste noudattaa seuraavaa kaavaa:
https://api.fabric.microsoft.com/v1/workspaces/><ws_id>/lakehouses/<lakehouse_id>/livyapi/versions/2023-12-01/
URL-osoitteeseen liitetään joko <istuntoja> tai <eriä> sen mukaan, mitä valitset.
Livy API Swagger -tiedostojen lataaminen
Livy-ohjelmointirajapinnan täydet swagger-tiedostot ovat saatavilla täällä.
Korkeat samanaikaiset sessiot
Korkean samanaikaisuuden (HC) tuki mahdollistaa samanaikaisen Spark-suorituksen antamalla asiakkaille mahdollisuuden hankkia useita itsenäisiä suorituskonteksteja, joita kutsutaan korkeaksi samanaikaiseksi istunnoiksi.
Jokainen HC-istunto edustaa loogista suorituskontekstia, joka kuvataan Spark REPL:ksi (Read-Eval-Print Loop). Eri HC-istuntojen aikana lähetetyt Spark-lauseet voivat suorittaa samanaikaisesti.
Tämä mahdollistaa:
- Rinnakkainen suoritus HC-istuntojen välillä
- Ennustettava resurssien käyttö
- Eristys samanaikaisten pyyntöjen välillä
- Pienempi ylikuormitus verrattuna uuden istunnon luomiseen per pyyntö
Yhden istunnon käyttäminen kaikille pyynnöille johtaa lauseiden suorittamiseen peräkkäin. Uuden istunnon luominen jokaiselle pyynnölle aiheuttaa tarpeetonta ylikuormitusta ja resurssien alikäyttöä.
Muistiinpano
HC-istuntojen hankinta ei ole idempotenttia. Useat hankintapyynnöt samalla tavalla palauttavat sessionTag eri HC-istunto-ID:t, vaikka ne tukisivat samaa taustalla olevaa Livy-istuntoa.
Vaiheittaisen opastuksen esimerkkikoodista löydät Aloita Livy API for Fabric High Concurrency Sessions. Käsitteellisen yleiskatsauksen löydät High conparallel support in Fabric Livy API.
Livy-ohjelmointirajapintatöiden lähettäminen
Nyt kun Livy-ohjelmointirajapinnan määritys on valmis, voit lähettää joko erän tai istuntotyöt.
- Lähetä istuntotöitä Livy-ohjelmointirajapinnan avulla
- Erätöiden lähettäminen Livy-ohjelmointirajapinnan avulla
Integraatio Fabric-ympäristöihin
Tämä Livy-ohjelmointirajapinnan istunto suoritetaan oletusarvoisesti työtilan oletusarvoista aloitussarjaa vasten. Vaihtoehtoisesti voit käyttää Fabric Environmentsia Luo, konfiguroi ja käytä ympäristöä Microsoft Fabric mukauttaaksesi Spark-poolia, jota Livy API -istunto käyttää näihin Spark-töihin.
Jos haluat käyttää Fabric Environmentia Livy Spark -istunnossa, päivitä json sisältämään tämän hyötykuorman.
create_livy_session = requests.post(livy_base_url, headers = headers, json={
"conf" : {
"spark.fabric.environmentDetails" : "{\"id\" : \""EnvironmentID""}"}
}
)
Jos haluat käyttää Fabric-ympäristöä Livy Spark -eräajosessiossa, päivitä json-hyötykuorma kuten tässä on esitetty:
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
}
}
Pyyntöhistorian seuranta
Valvontakeskuksen avulla voit tarkastella livy-ohjelmointirajapinnan aiempia lähetyksiä ja korjata lähetysvirheet.
Liittyvä sisältö
- Apache Livy REST -ohjelmointirajapinnan dokumentaatio
- Aloita Fabric kapasiteetin hallinta-asetuksista
Apache Spark -työtilan hallinta-asetukset Microsoft Fabric Rekisteröi hakemus Microsoftin käyttäjätietoympäristö - Microsoft Entra luvan ja suostumuksen yleiskatsaus
- Fabric REST API Scopes
- Apache Spark -valvonnan yleiskatsaus
- Apache Spark -sovelluksen tiedot