Apache Flink-jobbhantering® i HDInsight i AKS-kluster
Kommentar
Vi drar tillbaka Azure HDInsight på AKS den 31 januari 2025. Före den 31 januari 2025 måste du migrera dina arbetsbelastningar till Microsoft Fabric eller en motsvarande Azure-produkt för att undvika plötsliga uppsägningar av dina arbetsbelastningar. Återstående kluster i din prenumeration stoppas och tas bort från värden.
Endast grundläggande stöd kommer att vara tillgängligt fram till datumet för pensionering.
Viktigt!
Den här funktionen finns i förhandsgranskning. De kompletterande användningsvillkoren för Förhandsversioner av Microsoft Azure innehåller fler juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion eller på annat sätt ännu inte har släppts i allmän tillgänglighet. Information om den här specifika förhandsversionen finns i Azure HDInsight på AKS-förhandsversionsinformation. Om du vill ha frågor eller funktionsförslag skickar du en begäran på AskHDInsight med informationen och följer oss för fler uppdateringar i Azure HDInsight Community.
HDInsight på AKS innehåller en funktion för att hantera och skicka Apache Flink-jobb® direkt via Azure Portal (användarvänligt gränssnitt) och ARM Rest API:er.
Den här funktionen ger användarna möjlighet att effektivt kontrollera och övervaka sina Apache Flink-jobb utan att kräva djup kunskap på klusternivå.
Förmåner
Förenklad jobbhantering: Med den interna integreringen av Apache Flink i Azure Portal behöver användarna inte längre omfattande kunskaper om Flink-kluster för att skicka, hantera och övervaka jobb.
Användarvänligt REST API: HDInsight på AKS tillhandahåller användarvänliga ARM Rest API:er för att skicka och hantera Flink-jobb. Användare kan skicka Flink-jobb från valfri Azure-tjänst med hjälp av dessa rest-API:er.
Enkla jobbuppdateringar och tillståndshantering: Den inbyggda Azure Portal-integreringen ger en problemfri upplevelse för att uppdatera jobb och återställa dem till deras senast sparade tillstånd (sparpunkt). Den här funktionen säkerställer kontinuitet och dataintegritet under hela jobblivscykeln.
Automatisera Flink-jobb med Hjälp av Azure-pipeline: Med HDInsight på AKS har Flink-användare åtkomst till användarvänligt ARM Rest API. Du kan sömlöst integrera Flink-jobbåtgärder i din Azure Pipeline. Oavsett om du lanserar nya jobb, uppdaterar jobb som körs eller utför olika jobbåtgärder, eliminerar den här effektiva metoden manuella steg. Det gör att du kan hantera Flink-klustret effektivt.
Förutsättningar
Det finns vissa förutsättningar innan du skickar och hanterar jobb från portalen eller rest-API:er.
Skapa en katalog i klustrets primära lagringskonto för att ladda upp jobbburken.
Om användaren vill ta sparpunkter skapar du en katalog i lagringskontot för jobbsparpunkter.
Viktiga funktioner och åtgärder
Ny jobböverföring: Användarna kan enkelt skicka en ny Flink, vilket eliminerar behovet av komplexa konfigurationer eller externa verktyg.
Stoppa och starta jobb med sparpunkter: Användare kan smidigt stoppa och starta sina Flink-jobb från sitt tidigare tillstånd (Savepoint). Spara punkter säkerställer att jobbförloppet bevaras, vilket möjliggör sömlösa återupptagningar.
Jobbuppdateringar: Användaren kan uppdatera det jobb som körs när jar-filen har uppdaterats på lagringskontot. Den här uppdateringen tar automatiskt sparandepunkten och startar jobbet med en ny jar.
Tillståndslösa uppdateringar: Att utföra en ny omstart för ett jobb förenklas genom tillståndslösa uppdateringar. Med den här funktionen kan användare initiera en ren omstart med hjälp av den uppdaterade jobbburken.
Hantering av sparandepunkter: När som helst kan användarna skapa sparpunkter för sina jobb som körs. Dessa sparandepunkter kan visas och användas för att starta om jobbet från en specifik kontrollpunkt efter behov.
Avbryt: Jobbet avbryts permanent.
Ta bort: Ta bort jobbhistorikpost.
Alternativ för att hantera jobb i HDInsight på AKS
HDInsight på AKS tillhandahåller sätt att hantera Flink-jobb.
Jobbhantering från Azure Portal
Kör Flink-jobbet från portalen genom att gå till:
Portal –> HDInsight på AKS-klusterpool –> Flink-kluster –> Inställningar –> Flink-jobb
Nytt jobb: Om du vill skicka ett nytt jobb laddar du upp jobbburkarna till lagringskontot och skapar en savepoint-katalog. Slutför mallen med nödvändiga konfigurationer och skicka sedan jobbet.
Egenskapsinformation:
Property Beskrivning Standardvärde Obligatorisk Jobbnamn Unikt namn för jobbet. Detta visas på portalen. Jobbnamnet bör vara i liten senare. Ja Jar-sökväg Lagringssökväg för jobbburk. Användare bör skapa katalog i klusterlagring och ladda upp jobbburk. Ja Startklass Startklass för jobb som jobbkörningen startar från. Ja Args Argument för huvudprogrammet för jobbet. Avgränsa alla argument med blanksteg. Nej Parallellitet Jobb flink parallellitet. 2 Ja savepoint.directory Savepoint-katalog för jobb. Vi rekommenderar att användarna skapar en ny katalog för jobbsparpunkt i lagringskontot. abfs://<container>@<account>/<deployment-ID>/savepoints
Nej När jobbet har startats körs jobbstatusen på portalen.
Stopp: Stoppjobbet krävde ingen parameter, användaren kan stoppa jobbet genom att välja åtgärden.
När jobbet har stoppats stoppas jobbstatusen på portalen.
Start: Den här åtgärden startar jobbet från savepoint. Starta jobbet genom att välja det stoppade jobbet och starta det.
Fyll i flödesmallen med de alternativ som krävs och starta den. Användarna måste välja den sparpunkt som användaren vill starta jobbet från. Som standard tar den senaste lyckade sparandepunkten.
Egenskapsinformation:
Property Beskrivning Standardvärde Obligatorisk Args Argument för huvudprogrammet för jobbet. Alla argument ska avgränsas med blanksteg. Nej Senaste sparandepunkt Den senaste lyckade sparandepunkten tar innan jobbet stoppas. Detta används som standard om inte savepoint har valts. Kan inte redigeras Spara punktnamn Användare kan visa en lista över den tillgängliga sparandepunkten för jobbet och välja en för att starta jobbet. Nej När jobbet har startats körs jobbstatusen på portalen.
Uppdatering: Uppdateringen hjälper till att starta om jobb med uppdaterad jobbkod. Användarna måste uppdatera den senaste jobbburken på lagringsplatsen och uppdatera jobbet från portalen. Den här uppdateringen stoppar jobbet med savepoint och börjar igen med den senaste jar-filen.
Mall för att uppdatera jobbet.
När jobbet har uppdaterats är jobbstatusen på portalen "KÖRS".
Tillståndslös uppdatering: Det här jobbet är som en uppdatering, men det innebär en ny omstart av jobbet med den senaste koden.
Mall för att uppdatera jobbet.
Egenskapsinformation:
Property Beskrivning Standardvärde Obligatorisk Args Argument för huvudprogrammet för jobbet. Avgränsa alla argument med blanksteg. Nej När jobbet har uppdaterats körs jobbstatusen på portalen.
Spara punkt: Ta sparpunkten för Flink-jobbet.
Savepoint är en tidskrävande process och det tar lite tid. Du kan se status för jobbåtgärder som pågående.
Avbryt: Det här jobbet hjälper användaren att avsluta jobbet.
Ta bort: Ta bort jobbdata från portalen.
Visa jobbinformation: Om du vill visa jobbinformationen som användaren kan klicka på jobbnamnet ger det information om jobbet och resultatet av den senaste åtgärden.
För alla misslyckade åtgärder ger det här jobbet json detaljerade undantag och orsaker till fel.
Jobbhantering med hjälp av rest-API
HDInsight på AKS stöder användarvänliga ARM Rest API:er för att skicka jobb och hantera jobb. Med hjälp av det här Flink REST-API:et kan du sömlöst integrera Flink-jobbåtgärder i din Azure Pipeline. Oavsett om du lanserar nya jobb, uppdaterar jobb som körs eller utför olika jobbåtgärder, eliminerar den här effektiva metoden manuella steg och ger dig möjlighet att hantera Flink-klustret effektivt.
Bas-URL-format för Rest API
Se följande URL för rest-API: et, användare måste ersätta prenumeration, resursgrupp, klusterpool, klusternamn och HDInsight i AKS API-versionen i detta innan de använder den.
https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runjob?api-version={{API_VERSION}}
Med hjälp av det här REST-API:et kan användarna initiera nya jobb, stoppa jobb, starta jobb, skapa sparpunkter, avbryta jobb och ta bort jobb. Den aktuella API_VERSION är 2023-06-01-preview.
Rest API-autentisering
Om du vill autentisera Flink ARM Rest API-användare måste du hämta ägartoken eller åtkomsttoken för ARM-resursen. Om du vill autentisera REST-API:et för Azure ARM (Azure Resource Manager) med ett huvudnamn för tjänsten kan du följa dessa allmänna steg:
Skapa ett huvudnamn för tjänsten.
az ad sp create-for-rbac --name <your-SP-name>
Ge ägaren behörighet till SP för
flink
kluster.Logga in med tjänstens huvudnamn.
az login --service-principal -u <client_id> -p <client_secret> --tenant <tenant_id>
Hämta åtkomsttoken.
$token = az account get-access-token --resource=https://management.azure.com/ | ConvertFrom-Json
$tok = $token.accesstoken
Användare kan använda token i den URL som visas.
$data = Invoke-RestMethod -Uri $restUri -Method GET -Headers @{ Authorization = "Bearer $tok" }
Autentisering med hanterad identitet: Användare kan använda resurser som stöder hanterad identitet för att göra anrop till jobb-REST-API:et. Mer information finns i dokumentationen om hanterad identitet .
LISTA över API:er och parametrar
Nytt jobb: Rest API för att skicka nytt jobb till Flink.
Alternativ Värde Metod POST webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
Header Authorization = "Bearer $token" Begärandetext:
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "NEW", "jobJarDirectory": "<JOB_JAR_STORAGE_PATH>", "jarName": "<JOB_JAR_NAME>", "entryClass": "<JOB_ENTRY_CLASS>", “args”: ”<JOB_JVM_ARGUMENT>” "flinkConfiguration": { "parallelism": "<JOB_PARALLELISM>", "savepoint.directory": "<JOB_SAVEPOINT_DIRECTORY_STORAGE_PATH>" } } }
Egenskapsinformation för JSON-brödtext:
Property Beskrivning Standardvärde Obligatorisk jobType Typ av jobb. Det bör vara "FlinkJob" Ja jobName Unikt namn för jobbet. Detta visas på portalen. Jobbnamnet bör vara i liten senare. Ja åtgärd Det anger åtgärdstyp för jobbet. Den bör alltid vara "NY" för ny jobbstart. Ja jobJarDirectory Lagringssökväg för jobb jar-katalog. Användare bör skapa katalog i klusterlagring och ladda upp jobbburk. Ja jarName Namnet på jobbburken. Ja entryClass Startklass för jobb som jobbkörningen startar från. Ja args Argument för huvudprogrammet för jobbet. Avgränsa argument med blanksteg. Nej Parallellitet Jobb flink parallellitet. 2 Ja savepoint.directory Savepoint-katalog för jobb. Vi rekommenderar att användarna skapar en ny katalog för jobbsparpunkt i lagringskontot. abfs://<container>@<account>/<deployment-ID>/savepoints
Nej Exempel:
Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"
Stoppjobb: Rest-API för att stoppa aktuellt jobb som körs.
Alternativ Värde Metod POST webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
Header Authorization = "Bearer $token" Begärandetext
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "STOP" } }
Egenskapsinformation för JSON-brödtext:
Property Beskrivning Standardvärde Obligatorisk jobType Typ av jobb. Det bör vara "FlinkJob" Ja jobName Jobbnamn, som används för att starta jobbet Ja åtgärd Det bör vara "STOP" Ja Exempel:
Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"
Startjobb: Rest API för att starta stoppat jobb.
Alternativ Värde Metod POST webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
Header Authorization = "Bearer $token" Begärandetext
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "START", "savePointName": "<SAVEPOINT_NAME>" } }
Egenskapsinformation för JSON-brödtext:
Property Beskrivning Standardvärde Obligatorisk jobType Typ av jobb. Det bör vara "FlinkJob" Ja jobName Jobbnamn som används för att starta jobbet. Ja åtgärd Det bör vara "START" Ja savePointName Spara punktnamnet för att starta jobbet. Det är en valfri egenskap, som standard tar startåtgärden den senaste lyckade sparandepunkten. Nej Exempel:
Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"
Uppdateringsjobb: Rest-API för uppdatering av aktuellt jobb som körs.
Alternativ Värde Metod POST webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
Header Authorization = "Bearer $token" Begärandetext
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "UPDATE", “args” : “<JOB_JVM_ARGUMENT>”, "savePointName": "<SAVEPOINT_NAME>" } }
Egenskapsinformation för JSON-brödtext:
Property Beskrivning Standardvärde Obligatorisk jobType Typ av jobb. Det bör vara "FlinkJob" Ja jobName Jobbnamn som används för att starta jobbet. Ja åtgärd Det bör alltid vara "UPDATE" för ny jobbstart. Ja args JVM-argument för jobb Nej savePointName Spara punktnamnet för att starta jobbet. Det är en valfri egenskap. Som standard tar startåtgärden den senaste lyckade sparandepunkten. Nej Exempel:
Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"
Tillståndslöst uppdateringsjobb: Rest-API för tillståndslös uppdatering.
Alternativ Värde Metod POST webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
Header Authorization = "Bearer $token" Begärandetext
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "STATELESS_UPDATE", “args” : “<JOB_JVM_ARGUMENT>” } }
Egenskapsinformation för JSON-brödtext:
Property Beskrivning Standardvärde Obligatorisk jobType Typ av jobb. Det bör vara "FlinkJob" Ja jobName Jobbnamn som används för att starta jobbet. Ja åtgärd Det bör alltid vara "STATELESS_UPDATE" för ny jobbstart. Ja args JVM-argument för jobb Nej Exempel:
Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"
Savepoint: Rest-API:er för att utlösa savepoint för jobb.
Alternativ Värde Metod POST webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
Header Authorization = "Bearer $token" Begärandetext
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "SAVEPOINT" } }
Egenskapsinformation för JSON-brödtext:
Property Beskrivning Standardvärde Obligatorisk jobType Typ av jobb. Det bör vara "FlinkJob" Ja jobName Jobbnamn som används för att starta jobbet. Ja åtgärd Det bör alltid vara "SAVEPOINT" för ny jobbstart. Ja Exempel:
Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"
Listsparpunkt: Rest-API:et för att visa en lista över alla sparandepunkter från katalogen Savepoint.
Alternativ Värde Metod POST webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
Header Authorization = "Bearer $token" Begärandetext
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "LIST_SAVEPOINT" } }
Egenskapsinformation för JSON-brödtext:
Property Beskrivning Standardvärde Obligatorisk jobType Typ av jobb. Det bör vara "FlinkJob" Ja jobName Jobbnamn som används för att starta jobbet Ja åtgärd Det bör vara "LIST_SAVEPOINT" Ja Exempel:
Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"
Avbryt: Rest API för att avbryta jobbet.
Alternativ Värde Metod POST webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
Header Authorization = "Bearer $token" Begärandetext
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "CANCEL" } }
Egenskapsinformation för JSON-brödtext:
Property Beskrivning Standardvärde Obligatorisk jobType Typ av jobb. Den bör vara FlinkJob
Ja jobName Jobbnamn som används för att starta jobbet. Ja åtgärd Det bör vara CANCEL. Ja Exempel:
Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"
Ta bort: Rest API för att ta bort jobb.
Alternativ Värde Metod POST webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/runJob?api-version={{API_VERSION}}
Header Authorization = "Bearer $token" Begärandetext
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "DELETE" } }
Egenskapsinformation för JSON-brödtext:
Property Beskrivning Standardvärde Obligatorisk jobType Typ av jobb. Det bör vara "FlinkJob" Ja jobName Jobbnamn som används för att starta jobbet. Ja åtgärd Det bör vara DELETE. Ja Exempel:
Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"
Listjobb: Rest API för att visa alla jobb och status för den aktuella åtgärden.
Alternativ Värde Metod GET webbadress https://management.azure.com/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/jobs?api-version={{API_VERSION}}
Header Authorization = "Bearer $token" Utdata:
{ "value": [ { "id": "/subscriptions/{{USER_SUBSCRIPTION}}/resourceGroups/{{USER_RESOURCE_GROUP}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSER_POOL}}/clusters/{{FLINK_CLUSTER}}/jobs/job1", "properties": { "jobType": "FlinkJob", "jobName": "job1", "jobJarDirectory": "<JOB_JAR_STORAGE_PATH>", "jarName": "<JOB_JAR_NAME>", "action": "STOP", "entryClass": "<JOB_ENTRY_CLASS>", "flinkConfiguration": { "parallelism": "2", "savepoint.directory": "<JOB_SAVEPOINT_DIRECTORY_STORAGE_PATH>s" }, "jobId": "20e9e907eb360b1c69510507f88cdb7b", "status": "STOPPED", "jobOutput": "Savepoint completed. Path: <JOB_SAVEPOINT_DIRECTORY_STORAGE_PATH>s/savepoint-20e9e9-8a48c6b905e5", "actionResult": "SUCCESS", "lastSavePoint": "<JOB_SAVEPOINT_DIRECTORY_STORAGE_PATH>s/savepoint-20e9e9-8a48c6b905e5" } } ] }
Kommentar
När någon åtgärd pågår visar actionResult det med värdet "IN_PROGRESS" När åtgärden har slutförts visas "SUCCESS", och om det misslyckas blir den "FAILED".
Referens
- Schemaläggning av Apache Flink-jobb
- Apache, Apache Flink, Flink och associerade öppen källkod projektnamn är varumärken som tillhör Apache Software Foundation (ASF).