Jobbhantering med Apache Flink® i HDInsight på AKS-kluster
Viktig
Azure HDInsight på AKS drogs tillbaka den 31 januari 2025. Läs mer med det här meddelandet.
Du måste migrera dina arbetsbelastningar till Microsoft Fabric- eller en motsvarande Azure-produkt för att undvika plötsliga uppsägningar av dina arbetsbelastningar.
Viktig
Den här funktionen är för närvarande i förhandsversion. 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 är allmänt tillgängliga. Information om den här specifika förhandsversionen finns i Azure HDInsight på AKS-förhandsversionsinformation. För frågor eller funktionsförslag, skicka en förfrågan på AskHDInsight med detaljerna och följ oss för fler uppdateringar på Azure HDInsight Community.
HDInsight på AKS innehåller en funktion för att hantera och skicka Apache Flink-jobb® direkt via Azure-portalen (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ördelar
Förenklad jobbhantering: Med den interna integreringen av Apache Flink i Azure-portalen behöver användarna inte längre omfattande kunskaper om Flink-kluster för att skicka, hantera och övervaka jobb.
User-Friendly 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: Integreringen av den interna Azure-portalen ger en problemfri upplevelse för att uppdatera jobb och återställa dem till deras senast sparade tillstånd (savepoint). 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 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. 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 jobbinlämning: Användare kan enkelt skicka in en ny Flink, vilket eliminerar behovet av komplexa konfigurationer eller externa verktyg.
Stoppa och starta jobb med sparpunkter: Användare kan på ett smidigt sätt stoppa och starta sina Flink-jobb från sitt tidigare tillstånd (Savepoint). Sparpunkter säkerställer att jobbförloppet bevaras, vilket möjliggör en sömlös återupptagning.
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 med tillståndslösa uppdateringar. Med den här funktionen kan användare initiera en ren omstart med hjälp av den uppdaterade jobbburken.
Savepoint-hantering: Användare kan när som helst skapa sparpunkter för sina pågående jobb. 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-portalen
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.
Fastighetsdetaljer:
Egenskap Beskrivning Standardvärde Obligatorisk Jobbnamn Unikt namn för jobbet. Detta visas på portalen. Jobbnamnet bör vara i små bokstäver. 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 Argument Argument för huvudprogrammet för uppgiften. Avgränsa alla argument med blanksteg. Nej Parallellitet Flink-jobb parallellitet. 2 Ja savepoint.directory Savepoint-katalog för arbetsuppgift. 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 är jobbstatusen på portalen KÖRS.
Stoppa: Stoppa jobbet krävde inte någon parameter, användaren kan stoppa jobbet genom att välja åtgärden.
När jobbet har avbrutits visas jobbstatusen som STOPPADpå 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 från vilken de vill starta jobbet. Som standard tar den senaste lyckade sparandepunkten.
Egenskapsinformation:
Egenskap Beskrivning Standardvärde Obligatorisk Argument Argument för huvudprogrammet för jobbet. Alla argument ska avgränsas med blanksteg. Nej Senaste sparandepunkt Den senaste lyckade sparpunkten tas innan arbetet 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 påbörjats blir jobbstatusen på portalen KÖRS.
Update: Update hjälper till att starta om jobb med uppdaterad jobbkod. Användarna måste uppdatera den senaste versionen av jobbarkivet på lagringsplatsen och sedan uppdatera jobbet via 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: Den här processen är som en uppdatering, men det innebär att processen startas om helt med den senaste koden.
Mall för att uppdatera jobbet.
Egenskapsinformation:
Egenskap Beskrivning Standardvärde Obligatorisk Argument Argument för huvudprogrammet för jobbet. Avgränsa alla argument med blanksteg. Nej När jobbet har uppdaterats är statusen för jobbet på portalen "KÖR."
Savepoint: Ta sparpunkten för Flink-jobbet.
Savepoint är en tidskrävande process och det tar lite tid. Du kan se arbetets åtgärdsstatus 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 kan användaren klicka på jobbnamnet. Det ger information om jobbet och resultatet av den senaste åtgärden.
För varje misslyckad åtgärd tillhandahåller denna JSON-uppgift detaljerade undantag och orsaker till felet.
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 huvudkonto.
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. För mer information, se dokumentationen för hanterad identitet.
LISTA över API:er och parametrar
Nytt jobb: Rest API för att skicka ett nytt jobb till Flink.
Alternativ Värde Metod POST URL 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}}
Rubrik 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-kropp:
Egenskap Beskrivning Standardvärde Obligatorisk jobbtyp Typ av jobb. Det bör vara "FlinkJob" Ja jobbnamn Unikt namn för jobbet. Detta visas på portalen. Namn på jobbet bör vara i små bokstäver. 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 arbetet. Avgränsa argument med blanksteg. Nej Parallellitet Jobb Flink-parallellism. 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"
Stoppa jobb: Rest API för att stoppa aktuellt jobb som körs.
Alternativ Värde Metod POST URL 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}}
Rubrik Authorization = "Bearer $token" begärandetext
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "STOP" } }
Egenskapsinformation för JSON-kropp:
Egenskap Beskrivning Standardvärde Obligatorisk anställningstyp Typ av jobb. Det bör vara "FlinkJob" Ja jobbNamn 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 URL 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}}
Rubrik Authorization = "Bearer $token" begärandetext
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "START", "savePointName": "<SAVEPOINT_NAME>" } }
Egenskapsinformation för JSON-kropp:
Egenskap Beskrivning Standardvärde Obligatorisk jobtyp Typ av jobb. Det bör vara "FlinkJob" Ja jobbnamn Jobbnamn som används för att starta jobbet. Ja handling Det bör vara "START" Ja sparaPunktNamn 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 körande jobb.
Alternativ Värde Metod POST URL 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}}
Rubrik Authorization = "Bearer $token" begärandetext
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "UPDATE", “args” : “<JOB_JVM_ARGUMENT>”, "savePointName": "<SAVEPOINT_NAME>" } }
Egenskapsinformation för JSON-kropp:
Egenskap Beskrivning Standardvärde Obligatorisk jobbtyp Typ av jobb. Det bör vara "FlinkJob" Ja jobbnamn Jobbnamn som används för att starta jobbet. Ja handling Det bör alltid vara "UPDATE" för nya jobbstarter. Ja args JVM-argument för jobbet Nej sparaPunktNamn 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 URL 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}}
Rubrik Authorization = "Bearer $token" begärandetext
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "STATELESS_UPDATE", “args” : “<JOB_JVM_ARGUMENT>” } }
Egenskapsinformation för JSON-kropp:
Egenskap Beskrivning Standardvärde Obligatorisk anställningstyp Typ av jobb. Det bör vara "FlinkJob" Ja jobbnamn 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 jobbet.
Alternativ Värde Metod POST URL 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}}
Rubrik Authorization = "Bearer $token" begärandetext
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "SAVEPOINT" } }
Egenskapsinformation för JSON-body:
Egenskap Beskrivning Standardvärde Obligatorisk jobbtyp Typ av jobb. Det bör vara "FlinkJob" Ja jobbNamn 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"
List savepoint: REST API för att visa en lista över alla savepoints i savepoint-katalogen.
Alternativ Värde Metod POST URL 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}}
Rubrik Authorization = "Bearer $token" begärandetext
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "LIST_SAVEPOINT" } }
Egenskapsinformation i JSON-kropp:
Egenskap Beskrivning Standardvärde Obligatorisk jobtyp Typ av jobb. Det bör vara "FlinkJob" Ja jobbnamn Jobbnamn som används för att starta jobbet Ja handling 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 URL 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}}
Rubrik Authorization = "Bearer $token" begärandetext
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "CANCEL" } }
Detaljer om egenskaper för JSON-kropp:
Egenskap Beskrivning Standardvärde Obligatorisk jobbtyp Typ av jobb. Det bör vara FlinkJob
Ja arbetsnamn 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 URL 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}}
Rubrik Auktorisering = "Bearer $token" begärandetext
{ "properties": { "jobType": "FlinkJob", "jobName": "<JOB_NAME>", "action": "DELETE" } }
Egenskapsinformation för JSON-kropp:
Egenskap Beskrivning Standardvärde Obligatorisk jobbtyp Typ av jobb. Det bör vara "FlinkJob" Ja arbetsnamn Jobbnamn som används för att starta jobbet. Ja handling Det bör vara DELETE. Ja Exempel:
Invoke-RestMethod -Uri $restUri -Method POST -Headers @{ Authorization = "Bearer $tok" } -Body $jsonString -ContentType "application/json"
Lista jobb: Rest-API för att lista alla jobb och statusen för den pågående åtgärden.
Alternativ Värde Metod FÅ URL 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}}
Rubrik 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" } } ] }
Not
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".
Hänvisning
- Apache Flink-jobbschemaläggning
- Apache, Apache Flink, Flink och associerade projektnamn med öppen källkod är varumärken av Apache Software Foundation (ASF).