Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Høj samtidighed (HC) i Fabric Livy API'en muliggør skalerbar, parallel Spark-udførelse for automatiseringsbaserede arbejdsbelastninger. Klientapplikationer kan køre flere Spark-statements samtidigt, mens Fabric håndterer genbrug af sessioner, isolering, overvågning og fakturering.
Eksisterende Livy session- og batcharbejdsbelastninger fortsætter med at fungere uden ændringer.
Hvornår skal man bruge høj samtidighed
Standard Livius-brug er optimeret til sekventiel eller lav-samtidighedsudførelse. Efterhånden som automatiseringsscenarier vokser, har du brug for:
- Parallel Spark-udførelse.
- Forudsigeligt ressourceforbrug.
- Isolation mellem samtidige arbejdsbelastninger.
- En styret samtidighedsmodel, der integreres med Fabric-sikkerhed, overvågning og fakturering.
Uden HC-support skal du manuelt oprette og administrere flere Livy-sessioner på klientsiden. Dette øger kompleksiteten og reducerer observerbarheden.
Høj-samtidighedsudførelsesmodel
HC-eksekveringsmodellen fungerer som følger:
- En klient får en HC-session.
- Systemet opretter eller genbruger en underliggende Livy-session og opretter en Spark REPL (Read-Eval-Print Loop).
- Klienten udfører Spark-statements inden for HC-sessionen.
- Flere HC-sessioner kan udføre sætninger samtidig.
- Klienten kan uafhængigt hente, annullere eller slette HC-sessioner.
Hver HC-session:
- Kort til en Spark REPL.
- Kan udføre Spark-sætninger uafhængigt.
- Er isoleret fra fejl eller aflysninger i andre HC-sessioner.
Genbrug af sessioner og sessionTag
Når du får en HC-session, kan du valgfrit give en sessionTag.
Det sessionTag muliggør server-side sessionspakning:
- Hvis der findes en aktiv Livy-session
sessionTagog har tilgængelig kapacitet, opretter tjenesten en ny Spark REPL inden for den session. - Hvis der ikke findes en egnet session, opretter tjenesten en ny underliggende Livy-session.
Bemærk følgende vigtige karakteristika:
- HC-sessionsoptagelse er ikke idempotent.
- Flere acquir-anmodninger med samme
sessionTagreturnerer forskellige HC-sessions-ID'er. - Den samme underliggende Livy-session kan stadig støtte flere HC-sessioner.
Nøglekoncepter
Følgende liste beskriver nøgleparametrene:
- HC ID: Fabric identifikator for en REPL-niveau høj samtidighedssession. API'et returnerer en systemgenereret GUID.
- Livy-sessions-ID: Den underliggende Spark/Livy-session, der kan huse flere REPLs.
- REPL ID: Identifikatoren for REPL inden for en Livy-session. Hvert REPL-ID svarer til et HC-ID.
-
sessionTag(valgfrit): Et hint brugt til at pakke REPLs ind i eksisterende Livy-sessioner, når det er muligt. - Grænser: Tjenesten understøtter i øjeblikket op til fem REPL'er pr. Livy-session. Hurtige samtidige kald til HC-sessionsanskaffelses-API'en kan skabe flere Livy-sessioner.
Få en høj samtidighed Spark-session
Hvis der allerede findes en aktiv Livy-session for og sessionTag har ledige REPL-pladser, opretter tjenesten en REPL inden for den session. Ellers opretter tjenesten en ny Livy-session med en REPL indeni.
Anmodningspayload (HighConcurrencySessionRequest)
Anmodningsorganet for at opnå en session med høj samtidighed inkluderer følgende parametre:
{
"artifactName": "string",
"sessionTag": "string",
"tags": { "key": "value" },
"name": "string",
"file": "string",
"className": "string",
"args": ["string"],
"jars": ["string"],
"files": ["string"],
"pyFiles": ["string"],
"archives": ["string"],
"conf": { "spark.some.config": "value" },
"driverMemory": "string",
"driverCores": 1,
"executorMemory": "string",
"executorCores": 1,
"numExecutors": 2
}
Bemærk følgende om anmodningsparametrene:
- (
artifactNameLakehouse) bruges til at fremvise HC-opgaver i overvågningshubben somHC_<LakehouseName>_<LIVY_SESSION_ID>. - Det
sessionTager et tip til pakning. Det er ikke en streng lås. Hurtige samtidige POST-anmodninger med sammesessionTagkan skabe flere Livy-sessioner. - API'et er som standard ikke-idempotent. Flere POST-anmodninger kan give forskellige HC-ID'er og REPL'er.
Responspayload (HighConcurrencySessionResponse)
Responskroppen omfatter følgende felter:
{
"id": "string",
"state": "string",
"fabricSessionStateInfo": { "state": "string", "errorMessage": null },
"sessionId": "string | null",
"workspaceId": "string",
"artifactId": "string | null",
"creatorId": "string",
"createdAt": "ISO 8601",
"replId": "string | null",
"sessionTag": "string | null"
}
Mulige HTTP-svarkoder: 200, 400, 401, 404, 409, 500.
For den fulde OpenAPI-specifikation, se Livy API swagger definition i Fabric samples repository.
Monitoring
HC-job vises i overvågningshubben med navnet HC_<LakehouseName>_<LivySessionId> for at opretholde konsistens med andre jobtyper. Dette navngivningsformat giver overordnet synlighed, men begrænser annullering af REPL-niveau fra Fabric-portalen.
Bedste praksis
Overvej følgende bedste praksis, når du bruger sessioner med høj samtidighed:
- Jeg plejede
sessionTagat pakke relaterede opgaver ind i fælles Livy-sessioner, når det var acceptabelt. - Poll HC-sessionens GET-endpoint for at afgøre, hvornår er
stateIdleog beggesessionIdogreplIder fyldt ud.