Hantera beräkning
Den här artikeln beskriver hur du hanterar Azure Databricks-beräkning, inklusive visning, redigering, start, avslutande, borttagning, kontroll av åtkomst och övervakning av prestanda och loggar. Du kan också använda kluster-API:et för att hantera beräkning programmatiskt.
Visa beräkning
Om du vill visa din beräkning klickar du på Beräkning i sidofältet för arbetsytan.
Till vänster finns två kolumner som anger om beräkningen har fästs och status för beräkningen. Hovra över statusen för att få mer information.
Visa beräkningskonfiguration som en JSON-fil
Ibland kan det vara bra att visa din beräkningskonfiguration som JSON. Detta är särskilt användbart när du vill skapa liknande beräkning med hjälp av kluster-API:et. När du visar en befintlig beräkning går du till fliken Konfiguration , klickar på JSON längst upp till höger på fliken, kopierar JSON och klistrar in den i API-anropet. JSON-vyn är skrivskyddad.
Fästa en beräkning
30 dagar efter att en beräkning har avslutats tas den bort permanent. Om du vill behålla en all-purpose-beräkningskonfiguration efter att en beräkning har avslutats i mer än 30 dagar kan en administratör fästa beräkningen. Upp till 100 beräkningsresurser kan fästas.
Administratörer kan fästa en beräkning från beräkningslistan eller sidan med beräkningsinformation genom att klicka på fästikonen.
Redigera en beräkning
Du kan redigera en beräknings konfiguration från användargränssnittet för beräkningsinformation.
Kommentar
- Notebook-filer och jobb som har kopplats till beräkningen förblir kopplade efter redigeringen.
- Bibliotek som är installerade på beräkningen förblir installerade efter redigering.
- Om du redigerar ett attribut för en beräkning som körs (förutom beräkningsstorleken och behörigheterna) måste du starta om den. Detta kan störa användare som för närvarande använder beräkningen.
- Du kan bara redigera en beräkning som körs eller avslutas. Du kan dock uppdatera behörigheter för beräkning som inte finns i dessa tillstånd på sidan med beräkningsinformation.
Klona en beräkning
Om du vill klona en befintlig beräkning väljer du Klona från beräkningens kebabmeny.
När du har valt Klona öppnas användargränssnittet för beräkningsskapande i förifylld med beräkningskonfigurationen. Följande attribut ingår INTE i klonen:
- Beräkningsbehörigheter
- Anslutna anteckningsböcker
Om du inte vill ta med de tidigare installerade biblioteken i den klonade beräkningen klickar du på den nedrullningsbara menyn bredvid knappen Skapa beräkning och väljer Skapa utan bibliotek.
Beräkningsbehörigheter
Det finns fyra behörighetsnivåer för en beräkning: INGA BEHÖRIGHETER, KAN KOPPLA TILL, KAN STARTA OM och KAN HANTERA. Mer information finns i Beräknings-ACL:er.
Kommentar
Hemligheter redigeras inte från ett klusters Spark-drivrutinslogg stdout
och stderr
-strömmar. För att skydda känsliga data kan Spark-drivrutinsloggar som standard endast visas av användare med CAN MANAGE-behörighet för jobb, åtkomstläge för en användare och kluster för delat åtkomstläge. Om du vill tillåta användare med behörigheten CAN ATTACH TO eller CAN RESTART att visa loggarna i dessa kluster anger du följande Spark-konfigurationsegenskap i klusterkonfigurationen: spark.databricks.acl.needAdminPermissionToViewLogs false
.
På kluster för delat åtkomstläge utan isolering kan Spark-drivrutinsloggarna visas av användare med behörigheten KAN KOPPLA TILL eller KAN HANTERA. Om du vill begränsa vem som kan läsa loggarna till endast användare med behörigheten CAN MANAGE anger du spark.databricks.acl.needAdminPermissionToViewLogs
till true
.
Se Spark-konfiguration för att lära dig hur du lägger till Spark-egenskaper i en klusterkonfiguration.
Konfigurera beräkningsbehörigheter
I det här avsnittet beskrivs hur du hanterar behörigheter med hjälp av arbetsytans användargränssnitt. Du kan också använda behörighets-API:et eller Databricks Terraform-providern.
Du måste ha behörigheten CAN MANAGE för en beräkning för att konfigurera beräkningsbehörigheter.
- Klicka på Beräkning i sidopanelen.
- På raden för beräkningen klickar du på menyn för kebab till höger och väljer Redigera behörigheter.
- I Behörighetsinställningar klickar du på listrutan Välj användare, grupp eller tjänstens huvudnamn... och väljer en användare, grupp eller tjänstens huvudnamn.
- Välj en behörighet från den nedrullningsbara menyn för behörighet.
- Klicka på Lägg till och klicka på Spara.
Avsluta en beräkning
Om du vill spara beräkningsresurser kan du avsluta en beräkning. Konfigurationen för den avslutade beräkningen lagras så att den kan återanvändas (eller, om det gäller jobb, startas automatiskt) vid ett senare tillfälle. Du kan avsluta en beräkning manuellt eller konfigurera beräkningen så att den avslutas automatiskt efter en angiven period av inaktivitet. När antalet avslutade beräkningar överskrider 150 tas den äldsta beräkningen bort.
Såvida inte en beräkning fästs eller startas om tas den bort automatiskt och permanent 30 dagar efter avslutningen.
Avslutad beräkning visas i beräkningslistan med en grå cirkel till vänster om beräkningsnamnet.
Kommentar
När du kör ett jobb på en ny jobbberäkning (vilket vanligtvis rekommenderas) avslutas beräkningen och är inte tillgänglig för omstart när jobbet är klart. Å andra sidan, om du schemalägger ett jobb som ska köras på en befintlig All-Purpose-beräkning som har avslutats, startar den beräkningen automatiskt.
Viktigt!
Om du använder en Utvärderingsversion premium-arbetsyta avslutas alla beräkningsresurser som körs:
- När du uppgraderar en arbetsyta till full Premium.
- Om arbetsytan inte uppgraderas och utvärderingsversionen upphör att gälla.
Manuell avslutning
Du kan avsluta en beräkning manuellt från beräkningslistan (genom att klicka på kvadraten på beräkningsraden) eller sidan med beräkningsinformation (genom att klicka på Avsluta).
Automatisk avslutning
Du kan också ange automatisk avslutning för en beräkning. När beräkning skapas kan du ange en inaktivitetsperiod i minuter efter vilken du vill att beräkningen ska avslutas.
Om skillnaden mellan den aktuella tiden och den senaste kommandokörningen på beräkningen är mer än den angivna inaktivitetsperioden avslutar Azure Databricks automatiskt den beräkningen.
En beräkning anses vara inaktiv när alla kommandon på beräkningen, inklusive Spark-jobb, Strukturerad direktuppspelning och JDBC-anrop, har slutfört körningen.
Varning
- Beräkning rapporterar inte aktivitet som beror på användningen av DStreams. Det innebär att en automatisk avslutande beräkning kan avslutas medan den kör DStreams. Inaktivera automatisk avslutning för beräkning som kör DStreams eller överväg att använda strukturerad direktuppspelning.
- Inaktiv beräkning fortsätter att ackumulera DBU- och molninstansavgifter under inaktivitetsperioden före avslutningen.
Konfigurera automatisk avslutning
Du kan konfigurera automatisk avslutning i det nya beräkningsgränssnittet. Kontrollera att rutan är markerad och ange antalet minuter i inställningen Avsluta efter ___ minuter av inaktivitet .
Du kan välja bort automatisk avslutning genom att avmarkera kryssrutan Automatisk avslutning eller genom att ange en inaktivitetsperiod på 0
.
Kommentar
Automatisk avslutning stöds bäst i de senaste Spark-versionerna. Äldre Spark-versioner har kända begränsningar som kan leda till felaktig rapportering av beräkningsaktivitet. Till exempel kan beräkning som kör JDBC-, R- eller strömningskommandon rapportera en inaktuell aktivitetstid som leder till för tidig beräkningsavslut. Uppgradera till den senaste Spark-versionen för att dra nytta av felkorrigeringar och förbättringar av automatisk avslutning.
Oväntad avslutning
Ibland avslutas en beräkning oväntat, inte på grund av en manuell avslutning eller en konfigurerad automatisk avslutning.
En lista över uppsägningsorsaker och reparationssteg finns i Kunskapsbasen.
Ta bort en beräkning
Om du tar bort en beräkning avslutas beräkningen och dess konfiguration tas bort. Om du vill ta bort en beräkning väljer du Ta bort på beräkningsmenyn .
Varning
Du kan inte ångra den här åtgärden.
Om du vill ta bort en fäst beräkning måste den först tas bort av en administratör.
Du kan också anropa kluster-API-slutpunkten för att ta bort en beräkning programmatiskt.
Starta om en beräkning
Du kan starta om en tidigare avslutad beräkning från beräkningslistan, sidan med beräkningsinformation eller en notebook-fil. Du kan också anropa kluster-API-slutpunkten för att starta en beräkning programmatiskt.
Azure Databricks identifierar en beräkning med sitt unika kluster-ID. När du startar en avslutad beräkning återskapar Databricks beräkningen med samma ID, installerar automatiskt alla bibliotek och kopplar om notebook-filerna.
Kommentar
Om du använder en utvärderingsarbetsyta och utvärderingsversionen har upphört att gälla kan du inte starta en beräkning.
Starta om en beräkning för att uppdatera den med de senaste avbildningarna
När du startar om en beräkning hämtar den de senaste avbildningarna för beräkningsresurscontainrarna och de virtuella datorvärdarna. Det är viktigt att schemalägga regelbundna omstarter för tidskrävande beräkning, till exempel de som används för bearbetning av strömmande data.
Det är ditt ansvar att starta om alla beräkningsresurser regelbundet för att hålla avbildningen uppdaterad med den senaste avbildningsversionen.
Viktigt!
Om du aktiverar säkerhetsprofilen för efterlevnad för ditt konto eller din arbetsyta startas den tidskrävande beräkningen automatiskt om efter behov under ett schemalagt underhållsperiod. Detta minskar risken för att en automatisk omstart stör ett schemalagt jobb. Du kan också framtvinga omstart under underhållsfönstret. Se Automatisk klusteruppdatering.
Notebook-exempel: Hitta tidskrävande beräkning
Om du är administratör för arbetsytan kan du köra ett skript som avgör hur länge var och en av dina beräkningar har körts, och du kan också starta om dem om de är äldre än ett angivet antal dagar. Azure Databricks tillhandahåller det här skriptet som en notebook-fil.
De första raderna i skriptet definierar konfigurationsparametrar:
min_age_output
: Det maximala antalet dagar som en beräkning kan köras. Standard är 1.perform_restart
: OmTrue
startar skriptet om en beräkning med en ålder som är större än det antal dagar som anges avmin_age_output
. Standardvärdet ärFalse
, som identifierar tidskrävande beräkning men inte startar om dem.secret_configuration
: ErsättREPLACE_WITH_SCOPE
ochREPLACE_WITH_KEY
med ett hemligt omfång och nyckelnamn. Mer information om hur du konfigurerar hemligheter finns i notebook-filen.
Varning
Om du anger perform_restart
till True
startar skriptet automatiskt om berättigad beräkning, vilket kan leda till att aktiva jobb misslyckas och återställer öppna notebook-filer. Om du vill minska risken för att störa arbetsytans affärskritiska jobb planerar du en schemalagd underhållsperiod och meddelar användarna på arbetsytan.
Identifiera och om du vill starta om tidskrävande beräkning
Automatisk beräkningsstart för jobb och JDBC/ODBC-frågor
När ett jobb som tilldelats en avslutad beräkning är schemalagt att köras, eller om du ansluter till en avslutad beräkning från ett JDBC/ODBC-gränssnitt, startas beräkningen automatiskt om. Se Konfigurera beräkning för jobb och JDBC Connect.
Med automatisk beräkningsstart kan du konfigurera beräkningen så att den avslutas automatiskt utan att manuella åtgärder krävs för att starta om beräkningen för schemalagda jobb. Dessutom kan du schemalägga beräkningsinitiering genom att schemalägga ett jobb som ska köras på en avslutad beräkning.
Innan en beräkning startas om automatiskt kontrolleras behörigheterna för beräknings- och jobbåtkomstkontroll .
Kommentar
Om din beräkning skapades i Azure Databricks-plattformen version 2.70 eller tidigare finns det ingen automatisk start: jobb som är schemalagda att köras vid avslutad beräkning misslyckas.
Visa beräkningsinformation i Apache Spark-användargränssnittet
Du kan visa detaljerad information om Spark-jobb genom att välja fliken Spark-användargränssnitt på sidan med beräkningsinformation.
Om du startar om en avslutad beräkning visar Spark-användargränssnittet information för den omstartade beräkningen, inte den historiska informationen för den avslutade beräkningen.
Se Diagnostisera kostnader och prestandaproblem med spark-användargränssnittet för att gå igenom diagnostisering av kostnader och prestandaproblem med hjälp av Spark-användargränssnittet.
Visa beräkningsloggar
Azure Databricks tillhandahåller tre typer av loggning av beräkningsrelaterad aktivitet:
- Beräkningshändelseloggar som samlar in händelser för beräkningslivscykeln, till exempel skapande, avslutning och konfigurationsredigeringar.
- Apache Spark-drivrutin och arbetslogg som du kan använda för felsökning.
- Beräkningsloggar för init-skript, som är värdefulla för felsökning av init-skript.
I det här avsnittet beskrivs beräkningshändelseloggar och drivrutins- och arbetsloggar. Mer information om init-script-loggar finns i Loggning av Init-skript.
Beräkningshändelseloggar
Händelseloggen för beräkning visar viktiga händelser för beräkningslivscykeln som utlöses manuellt av användaråtgärder eller automatiskt av Azure Databricks. Sådana händelser påverkar driften av en beräkning som helhet och jobben som körs i beräkningen.
Information om händelsetyper som stöds finns i kluster-API-datastrukturen.
Händelser lagras i 60 dagar, vilket är jämförbart med andra datakvarhållningstider i Azure Databricks.
Visa en beräknings händelselogg
Om du vill visa beräkningshändelseloggen väljer du fliken Händelselogg på sidan med beräkningsinformation.
Om du vill ha mer information om en händelse klickar du på dess rad i loggen och klickar sedan på fliken JSON för mer information.
Beräkningsdrivrutiner och arbetsloggar
De direkta utskrifts- och logginstruktionerna från dina notebook-filer, jobb och bibliotek går till Spark-drivrutinsloggarna. Du kan komma åt dessa loggfiler från fliken Drivrutinsloggar på sidan med beräkningsinformation. Klicka på namnet på en loggfil för att ladda ned den.
Dessa loggar har tre utdata:
- Standardutdata
- Standardfel
- Log4j-loggar
Om du vill visa Spark-arbetsloggar använder du fliken Spark-användargränssnitt . Du kan också konfigurera en loggleveransplats för beräkningen. Både arbets- och beräkningsloggar levereras till den plats som du anger.
Övervaka prestanda
För att hjälpa dig att övervaka prestanda för Azure Databricks-beräkning ger Azure Databricks åtkomst till mått från sidan med beräkningsinformation. För Databricks Runtime 12.2 och nedan ger Azure Databricks åtkomst till Ganglia-mått . För Databricks Runtime 13.3 LTS och senare tillhandahålls beräkningsmått av Azure Databricks.
Dessutom kan du konfigurera en Azure Databricks-beräkning för att skicka mått till en Log Analytics-arbetsyta i Azure Monitor, övervakningsplattformen för Azure.
Du kan också installera Datadog-agenter på beräkningsnoder för att skicka Datadog-mått till ditt Datadog-konto.
Beräkningsmått
Beräkningsmått är standardövervakningsverktyget för icke-serverlös all-purpose- och jobbberäkning. Om du vill komma åt användargränssnittet för beräkningsmått går du till fliken Mått på sidan med beräkningsinformation.
Du kan visa historiska mått genom att välja ett tidsintervall med hjälp av datumväljarens filter. Mått samlas in varje minut. Du kan också hämta de senaste måtten genom att klicka på knappen Uppdatera . Mer information finns i Visa beräkningsmått.
Ganglia-mått
Kommentar
Ganglia-mått är endast tillgängliga för Databricks Runtime 12.2 och lägre.
Om du vill komma åt Ganglia-användargränssnittet går du till fliken Mått på sidan med beräkningsinformation och aktiverar inställningen Äldre mått . GPU-mått är tillgängliga för GPU-aktiverad beräkning.
Om du vill visa livemått klickar du på länken för Ganglia-användargränssnittet .
Om du vill visa historiska mått klickar du på en ögonblicksbildfil. Ögonblicksbilden innehåller sammanställda mått för timmen före den valda tiden.
Kommentar
Ganglia stöds inte med Docker-containrar. Om du använder en Docker-container med din beräkning är Ganglia-mått inte tillgängliga.
Konfigurera Ganglia-måttsamling
Som standard samlar Azure Databricks in Ganglia-mått var 15:e minut. Konfigurera samlingsperioden genom att ange DATABRICKS_GANGLIA_SNAPSHOT_PERIOD_MINUTES
miljövariabeln med hjälp av ett init-skript eller i spark_env_vars
fältet i API:et Skapa kluster.
Azure Monitor
Du kan konfigurera en Azure Databricks-beräkning för att skicka mått till en Log Analytics-arbetsyta i Azure Monitor, övervakningsplattformen för Azure. Fullständiga anvisningar finns i Övervaka Azure Databricks.
Kommentar
Om du har distribuerat Azure Databricks-arbetsytan i ditt eget virtuella nätverk och du har konfigurerat nätverkssäkerhetsgrupper (NSG) för att neka all utgående trafik som inte krävs av Azure Databricks, måste du konfigurera ytterligare en regel för utgående trafik för tjänsttaggen "AzureMonitor".
Notebook-exempel: Datadog-mått
Du kan installera Datadog-agenter på beräkningsnoder för att skicka Datadog-mått till ditt Datadog-konto. Följande notebook-fil visar hur du installerar en Datadog-agent på en beräkning med hjälp av ett init-skript med beräkningsomfång.
Om du vill installera Datadog-agenten på all beräkning hanterar du init-skriptet med beräkningsomfång med hjälp av en beräkningsprincip.
Installera init-skriptanteckningsboken för Datadog-agenten
Inaktivera instanser av oanvänd kapacitet
Eftersom instanser av oanvänd kapacitet kan minska kostnaderna är det ett vanligt sätt att köra jobb att skapa beräkning med hjälp av instanser av oanvänd kapacitet i stället för på begäran-instanser. Spot-instanser kan dock föregripas av schemaläggningsmekanismer för molnleverantörer. Preemption av spot-instanser kan orsaka problem med jobb som körs, inklusive:
- Fel vid shuffle-hämtning
- Blanda dataförlust
- RDD-dataförlust
- Jobbfel
Du kan aktivera avaktivering för att lösa dessa problem. Avaktivering drar nytta av det meddelande som molnleverantören vanligtvis skickar innan en instans av oanvänd kapacitet inaktiveras. När en instans av oanvänd kapacitet som innehåller en köre tar emot ett meddelande om förinläsning försöker inaktiveringsprocessen migrera shuffle- och RDD-data till felfria utförare. Varaktigheten före den slutliga preemptionen är vanligtvis 30 sekunder till 2 minuter, beroende på molnleverantören.
Databricks rekommenderar att du aktiverar datamigrering när du inaktiverar är också aktiverat. I allmänhet minskar risken för fel när mer data migreras, inklusive shuffle-hämtningsfel, shuffle-dataförlust och RDD-dataförlust. Datamigrering kan också leda till mindre beräkning och sparade kostnader.
Kommentar
Avaktivering är ett bra försök och garanterar inte att alla data kan migreras före den slutliga preemptionen. Inaktivering kan inte garantera att shuffle-hämtningsfel uppstår när aktiviteter som körs hämtar shuffle-data från kören.
När avaktiveringen är aktiverad läggs aktivitetsfel som orsakas av preemption för instanser av oanvänd kapacitet inte till i det totala antalet misslyckade försök. Aktivitetsfel som orsakas av preemption räknas inte som misslyckade försök eftersom orsaken till felet är extern för aktiviteten och inte resulterar i jobbfel.
Aktivera avaktivering
Om du vill aktivera inaktivering av en beräkning anger du följande egenskaper på fliken Spark under Avancerade alternativ i användargränssnittet för beräkningskonfiguration. Information om dessa egenskaper finns i Spark-konfiguration.
Om du vill aktivera avaktivering för program anger du den här egenskapen i fältet Spark-konfiguration :
spark.decommission.enabled true
Om du vill aktivera migrering av shuffle-data under inaktivering anger du den här egenskapen i fältet Spark-konfiguration :
spark.storage.decommission.enabled true spark.storage.decommission.shuffleBlocks.enabled true
Om du vill aktivera migrering av RDD-cachedata under inaktivering anger du den här egenskapen i fältet Spark-konfiguration :
spark.storage.decommission.enabled true spark.storage.decommission.rddBlocks.enabled true
Kommentar
När RDD StorageLevel-replikering är inställd på mer än 1 rekommenderar Databricks inte att aktivera RDD-datamigrering eftersom replikerna ser till att RDD:er inte förlorar data.
Om du vill aktivera avaktivering för arbetare anger du den här egenskapen i fältet Miljövariabler :
SPARK_WORKER_OPTS="-Dspark.decommission.enabled=true"
Visa status och förlustorsak i användargränssnittet
Om du vill komma åt en arbetares avaktiveringsstatus från användargränssnittet går du till fliken Spark-beräkningsgränssnitt – Huvud .
När avaktiveringen är klar kan du visa körningens orsak till förlust på fliken Spark UI > Executors på sidan med beräkningsinformation.