Övning – Övervaka Azure Batch-jobb i CLI
Om du använder Azure Batch för att köra resursintensiva uppgifter kommer du ofta vilja veta hur det går för uppgifterna.
Som lösningsarkitekt för den ideella organisationen behöver du sätt att komma åt det som händer i Azure Batch. Du måste också avgöra om noderna och uppgifterna fungerar, hur långt de har gått och om de har skapat nedladdningsbara utdatafiler.
I den här enheten skapar du ett jobb som liknar jobbet i föregående enhet, övervakar förloppet för dess uppgifter och laddar ned de filer uppgifterna genererar som utdata – allt detta med hjälp av Azure CLI.
Viktigt!
Övningarna i den här modulen är valfria. För att slutföra övningarna behöver du en egen Azure-prenumeration.
Övervaka uppgifter med hjälp av CLI
Azure Batch sköter alla detaljer vad gäller att skapa och hantera beräkningsnoder och schemalägga jobb att köras på de noderna.
När du skapade uppgifter i den senaste enheten satte Azure Batch dem i kö för att köras i poolen. När noderna bedömdes ha tillgänglig kapacitet schemalade Azure Batch uppgifterna att köras på de noderna.
I slutet av den senaste enheten tog vi bort jobbet, vilket medförde att alla dess uppgifter togs bort. Nu skapar vi ett nytt jobb samt uppgifter. Observera att det går ganska snabbt att ta bort och återskapa uppgifter, och det gör att du enkelt kan särskilja olika experiment och projekt i Azure Batch. Det tar däremot längre tid att ta bort och återskapa batchentiteter på högre nivå (till exempel konton), eftersom Batch-poolen måste återskapas och virtuella datorer allokeras.
Logga in på Azure-portalen.
Öppna Cloud Shell genom att välja Cloud Shell-ikonen (>_) på den översta menyn.
Kör följande kommando i Cloud Shell för att skapa ett nytt Batch-jobb:
az batch job create \ --id myjob2 \ --pool-id mypool
Vi gav det ett annat namn för att undvika konflikter med jobbet från föregående enhet, som har schemalagts för borttagning men inte nödvändigtvis tagits bort ännu.
Kör följande kommando för att skapa Batch-uppgifterna i det här nya jobbet:
for i in {1..10} do az batch task create \ --task-id mytask$i \ --job-id myjob2 \ --command-line "/bin/bash -c 'echo \$(printenv | grep \AZ_BATCH_TASK_ID) processed by; echo \$(printenv | grep \AZ_BATCH_NODE_ID)'" done
Kör följande kommando i Cloud Shell för att visa statusen för en av de uppgifter du skapade:
az batch task show \ --job-id myjob2 \ --task-id mytask1
Ladda ned uppgiftsutdata med hjälp av CLI
Om du vill kontrollera att batchjobbet körs korrekt kan du ladda ned och undersöka de filer som det skapade.
Kör följande kommando i Cloud Shell för att visa en tabell med alla filer som genererades av en av de uppgifter som du har skapat:
az batch task file list \ --job-id myjob2 \ --task-id mytask5 \ --output table
Kommentar
Om du ser ett
The files of the specified task cannot be accessed as the task state is still active
felmeddelande väntar du några minuter och kör kommandot igen.Kör följande kommando i Cloud Shell för att skapa en dedikerad katalog för uppgiftsutdata och navigera till den:
mkdir taskoutputs && cd taskoutputs
Kör följande kommando i Cloud Shell för att ladda ned de filer som genererades av alla du uppgifter du har skapat:
for i in {1..10} do az batch task file download \ --job-id myjob2 \ --task-id mytask$i \ --file-path stdout.txt \ --destination ./stdout$i.txt done
Aktiviteter har en standardarbetskatalog och som standard dirigeras deras arbete till
stdout.txt
. Genom att loopa igenom kan vi omdirigerastdout.txt
till numrerade versioner avstdout.txt
, som var och en visar arbetet för en viss uppgift och vilken nod som användes för att köra den.Kör följande kommando för att visa textinnehållet i ett par av de exempelgenererade filerna:
cat stdout1.txt && cat stdout2.txt
Dessa utdata visar hur olika uppgifter schemaläggs till olika noder allt eftersom Batch-schemaläggaren bearbetar dem.
Återigen lämnar vi Azure Batch-kontot och poolen med arbetsnoder på plats för användning i nästa enhet, men vi tar bort Batch-jobbet. Eftersom Batch-jobbet fungerar som container för sina Batch-uppgifter tas även de här uppgifterna bort.
Använd följande kommando för att ta bort Batch-jobbet:
az batch job delete --job-id myjob2 -y