Jobb

Ett jobb är ett sätt att köra en bärbar dator eller JAR antingen omedelbart eller enligt ett schema. Det andra sättet att köra en antecknings bok är interaktivt i anteckningsbok-gränssnittet.

Du kan skapa och köra jobb med hjälp av användar gränssnittet, CLI och genom att anropa jobb-API: et. Du kan övervaka jobb körnings resultat i användar gränssnittet med hjälp av CLI, genom att fråga API: et och via e-postaviseringar. Den här artikeln fokuserar på att utföra jobb aktiviteter med hjälp av användar gränssnittet. Andra metoder finns i jobb- CLI och jobb-API.

Viktigt

  • Antalet jobb är begränsat till 1 000.
  • Antalet jobb som en arbets yta kan skapa på en timme är begränsad till 5000 (inklusive "kör nu" och "kör sändning"). Den här gränsen påverkar även jobb som skapas av REST API och notebook-flöden.
  • En arbetsyta är begränsad till 150 samtidiga jobbkörningar (som körs).
  • En arbetsyta är begränsad till 1 000 aktiva jobbkörningar (som körs eller väntar).

Visa jobb

Klicka på jobb ikonen Meny ikonen jobb i sidofältet. Jobb listan visas. På sidan jobb visas alla definierade jobb, kluster definitionen, schemat, om det finns några, och resultatet av den senaste körningen.

I listan jobb kan du filtrera jobb:

  • Med hjälp av nyckelord.
  • Välja endast jobb som du äger eller jobb som du har åtkomst till. Åtkomst till det här filtret beror på vilka jobb åtkomst kontroll som Aktiver ATS.

Du kan också klicka på en kolumn rubrik för att sortera jobb listan (antingen fallande eller stigande) efter kolumnen. Som standard sorteras sidan efter jobb namn i stigande ordning.

Jobb lista

Skapa ett jobb

  1. Klicka på + skapa jobb. Sidan jobb information visas.

    Jobb information

  2. Ange ett namn i textfältet med platshållartexten Untitled .

  3. Ange uppgifts typ: Klicka på Välj Notebook, Ange jar eller Konfigurera Spark-Submit.

    • Notebook-fil

      1. Välj en antecknings bok och klicka på OK.
      2. Bredvid parametrar klickar du på Redigera. Ange nyckel/värde-par eller en JSON-sträng som representerar nyckel/värde-par. Sådana parametrar anger värdet för widgetar.
    • Jar: Ladda upp en JAR, ange huvud klass och argument och klicka på OK. Mer information om JAR-jobb finns i jar-tips.

    • Spark-Submit: Ange huvud klass, sökväg till biblioteks jar, argumenten och klicka på Bekräfta. Mer information om Spark-Submit finns i Apache Spark- dokumentationen.

      Anteckning

      Följande Azure Databricks funktioner är inte tillgängliga för Spark-Submit-jobb:

      • Automatisk skalning av kluster. Mer information om autoskalning finns i automatisk skalning av kluster.
      • Databricks-verktyg. Om du vill använda Databricks-verktyg använder du JAR-jobb i stället.
  4. I fältet beroende bibliotek, om du vill, klickar du på Lägg till och anger beroende bibliotek. Beroende bibliotek kopplas automatiskt till klustret vid start. Följ rekommendationerna i biblioteks beroenden för att ange beroenden.

    Viktigt

    Om du har konfigurerat ett bibliotek för att installeras automatiskt på alla kluster eller i nästa steg väljer du ett befintligt avbrutet kluster som har installerade bibliotek, men jobb körningen väntar inte på att biblioteks installationen ska slutföras. Om ett jobb kräver ett visst bibliotek bör du koppla biblioteket till jobbet i fältet beroende bibliotek.

  5. I fältet kluster klickar du på Redigera och anger det kluster som jobbet ska köras på. I list rutan kluster typ väljer du nytt jobb kluster eller befintligt All-Purpose kluster.

    Anteckning

    Tänk på följande när du väljer en kluster typ:

    • För jobb på produktions nivå eller jobb som är viktiga för att slutföras, rekommenderar vi att du väljer nytt jobb kluster.
    • Du kan bara köra Spark-Submit-jobb på nya kluster.
    • När du kör ett jobb i ett nytt kluster behandlas jobbet som en arbets belastning för data teknik (jobb) som omfattas av prissättningen för jobb arbets belastning. När du kör ett jobb i ett befintligt kluster behandlas jobbet som en data analys (all användning) arbets belastning som omfattas av prissättningen för alla syften.
    • Om du väljer ett avbrutet befintligt kluster och jobb ägaren har behörighetatt starta om, Azure Databricks starta klustret när jobbet är schemalagt att köras.
    • Befintliga kluster fungerar bäst för uppgifter som att uppdatera instrument paneler med jämna mellanrum.
    • Nytt jobb kluster -Slutför kluster konfigurationen.
      1. Välj en körnings version i kluster konfigurationen. Hjälp med att välja en körnings version finns i Databricks runtime och Databricks Light.
      2. Välj en pool i kluster konfigurationen om du vill minska den nya start tiden för klustret.
    • Befintligt All-Purpose kluster – Välj det befintliga klustret i list rutan.
  6. I fältet schema kan du också klicka på Redigera och schemalägga jobbet. Se köra ett jobb.

  7. Du kan också klicka på Avancerat och ange avancerade alternativ för jobb. Se avancerade jobb alternativ.

Visa jobb information

På sidan jobb klickar du på ett jobb namn i kolumnen namn. Sidan jobb information visar konfigurations parametrar, aktiva körningar (körs och väntar) och slutförda körningar.

Jobb information

Databricks hanterar en historik för jobbet som körs i upp till 60 dagar. Om du behöver behålla jobb körningarna rekommenderar vi att du exporterar jobb körnings resultat innan de går ut. Mer information finns i Exportera jobb körnings resultat.

På sidan jobb körningar kan du se standard felet, standard utmatningen, log4j-utdata för ett jobb som körs genom att klicka på länken loggar i kolumnen Spark.

Köra ett jobb

Du kan köra ett jobb enligt ett schema eller direkt.

Schemalägga ett jobb

Så här definierar du ett schema för jobbet:

  1. Klicka på redigera bredvid schema.

    Redigera schema

    Dialog rutan Schemalägg jobb visas.

    Schemalägg jobb

  2. Ange schemats granularitet, start tid och tidszon. Du kan också markera kryss rutan Visa cron-syntax för att visa och redigera schemat i Quartz cron syntax.

    Anteckning

    • Azure Databricks tillämpar ett minsta intervall på 10 sekunder mellan efterföljande körningar som utlöses av ett jobbs schema oavsett sekunders konfigurationen i cron-uttrycket.
    • Du kan välja en tidszon som iakttar sommar tid eller en UTC-tid. Om du väljer en zon som visar sommar tid, hoppas ett Tim jobb över, eller så kan det verka som om det inte utlöses under en timme eller två när sommar tid börjar eller slutar. Om du vill att jobben ska köras varje timme (absolut tid) väljer du en UTC-tid.
    • Jobbschemat, som Spark batch-gränssnittet, är inte avsett för jobb med låg latens. På grund av nätverks-eller moln problem kan jobb körningarna ibland fördröjas upp till flera minuter. I dessa fall körs schemalagda jobb omedelbart när tjänsten är tillgänglig.
  3. Klicka på Bekräfta.

    Finplanerat

Pausa och återuppta ett jobb schema

Pausa ett jobb genom att klicka på paus knappen bredvid jobb schema:

Finplanerat

Om du vill återuppta ett pausat jobb schema klickar du på knappen Fortsätt :

Återuppta jobb

Kör ett jobb direkt

Om du vill köra jobbet omedelbart klickar du på Kör nu i tabellen aktiva körningar .

Kör nu

Tips

Klicka på Kör nu om du vill göra en test körning av din bärbara dator eller jar när du är klar med konfigurationen av jobbet. Om antecknings boken Miss lyckas kan du redigera den så att jobbet automatiskt kör den nya versionen av antecknings boken.

Kör ett jobb med olika parametrar

Du kan använda Kör nu med olika parametrar för att köra ett jobb igen och ange olika parametrar eller olika värden för befintliga parametrar.

  1. I tabellen aktiva körningar klickar du på Kör nu med olika parametrar. Dialog rutan varierar beroende på om du kör ett antecknings jobb eller ett Spark-Submit-jobb.

    • Notebook – ett användar gränssnitt där du kan ange nyckel/värde-par eller ett JSON-objekt visas. Du kan använda den här dialog rutan för att ange värden för widgetar:

      Kör antecknings boken med parametrar

    • Spark-Submit – en dialog ruta som innehåller listan över parametrar visas. Du kan till exempel köra SparkPi-uppskattningen som beskrivs i skapa ett jobb med 100 i stället för standardvärdet 10 partitioner:

      Ange parametrar för Spark-sändning

  2. Ange parametrarna. De angivna parametrarna slås samman med standard parametrarna för den Utlös ande körningen. Om du tar bort nycklar används standard parametrarna.

  3. Klicka på Kör.

Tips om Notebook -jobb

Total storlek för notebook-celler (kombinerade utdata från alla antecknings böcker) omfattas av en 20 MB storleks gräns. Dessutom omfattas enskilda cell utdata av en storleks gräns på 8 MB. Om total cells utdata överskrider 20 MB i storlek, eller om resultatet för en enskild cell är större än 8 MB, avbryts körningen och markeras som misslyckad. Om du behöver hjälp med att hitta celler som ligger nära eller förbi gränsen, kör du antecknings boken mot ett kluster för alla syften och använder den här AUTOSPARNING-tekniken i Notebook.

Tips om jar -jobb

Det finns vissa varningar som du måste känna till när du kör ett JAR-jobb.

Storleks begränsningar för utdata

Anteckning

Tillgängligt i Databricks Runtime 6,3 och senare.

Jobbets utdata, till exempel utgående logg utdata till stdout, omfattas av en storleks gräns för 20 MB. Om den totala utmatningen har en större storlek avbryts körningen och markeras som misslyckad.

För att undvika att kunna räkna ut den här gränsen kan du förhindra att STDOUT returneras från driv rutinen till Azure Databricks genom att ställa in spark.databricks.driver.disableScalaOutput Spark-konfigurationen på true . Som standard är flagg-värdet false . Flaggan styr cellens utdata för Scala JAR-jobb och Scala-anteckningsböcker. Om flaggan är aktive rad returnerar Spark inte jobb körnings resultat till klienten. Flaggan påverkar inte de data som skrivs i klustrets loggfiler. Att ställa in den här flaggan rekommenderas endast för jobb kluster för JAR-jobb, eftersom den kommer att inaktivera antecknings resultat.

Använd den delade SparkContext

Eftersom Databricks är en hanterad tjänst kan vissa kod ändringar vara nödvändiga för att se till att dina Apache Spark-jobb körs på rätt sätt. JAR-jobb måste använda det delade SparkContext API: t för att hämta SparkContext . Eftersom Databricks initieras Miss fungerar de SparkContext program som anropar new SparkContext() . Hämta genom att SparkContext bara använda den delade SparkContext som skapats av Databricks:

val goodSparkContext = SparkContext.getOrCreate()
val goodSparkSession = SparkSession.builder().getOrCreate()

Det finns dessutom flera metoder som du bör undvika när du använder delade SparkContext .

  • Anropa inte SparkContext.stop() .
  • Anropa inte System.exit(0) eller sc.stop() i slutet av ditt Main program. Detta kan orsaka odefinierat beteende.

Använd try-finally block för jobb rensning

Överväg en JAR-uppsättning som består av två delar:

  • jobBody() som innehåller huvud delen av jobbet
  • jobCleanup() som måste utföras efter jobBody() , oavsett om den funktionen distribuerats eller returnerade ett undantag

Som exempel kan jobBody() du skapa tabeller och använda jobCleanup() dem för att ta bort dessa tabeller.

Det säkra sättet att se till att metoden rensa är att anropa ett try-finally block i koden:

try {
  jobBody()
} finally {
  jobCleanup()
}

Du bör inte försöka rensa med sys.addShutdownHook(jobCleanup) eller

val cleanupThread = new Thread { override def run = jobCleanup() }
Runtime.getRuntime.addShutdownHook(cleanupThread)

På grund av hur lång tid som Spark-behållare hanterar i Azure Databricks körs inte uppstängda Hooks på ett tillförlitligt sätt.

Konfigurera JAR-jobb parametrar

JAR-jobb är parameterstyrda med en sträng mat ris.

  • I användar gränssnittet kan du mata in parametrarna i text rutan argument som är indelade i en matris genom att använda tolknings regler för POSIX-gränssnittet. Mer information finns i dokumentationen till shlex.
  • I API: t matar du in parametrarna som en standard-JSON-matris. Mer information finns i referens SparkJarTask. För att få åtkomst till dessa parametrar måste du kontrol lera String matrisen som skickas till din main funktion.

Visa jobb körnings information

En jobb körnings informations sida innehåller jobbets utdata och länkar till loggar:

Jobb körnings information

Du kan visa jobb körnings information från sidan jobb och sidan kluster.

  • Klicka på  meny ikonen jobb ikon . Klicka på länken kör nummer i kolumnen Kör i den färdiga tidigare 60 dagar -tabellen.

    Jobb körning från jobb

  • Klicka på kluster ikonen kluster ikon  . I en jobb rad i tabellen jobb kluster klickar du på länken jobb körning .

    Jobb körning från kluster

Körnings resultat för export jobb

Du kan exportera körnings resultat för bärbara datorer och jobb körnings loggar för alla jobb typer.

Exportera körnings resultat för bärbara datorer

Du kan spara jobb körningar genom att exportera resultatet. För att anteckningsbok-jobbet ska köras kan du Exportera en renderad antecknings bok som senare kan importeras till din Databricks-arbetsyta.

  1. På sidan jobb information klickar du på ett jobb körnings namn i kolumnen kör.

    Jobb körning

  2. Klicka på Exportera till HTML.

    Resultat av exportera körning

Exportera jobb körnings loggar

Du kan också exportera loggarna för jobb körningen. För att automatisera den här processen kan du konfigurera jobbet så att det automatiskt skickar loggar till DBFS via jobb-API: et. Mer information finns i fälten NewCluster och ClusterLogConf i jobbet skapa API-anrop.

Redigera ett jobb

Redigera ett jobb genom att klicka på länken jobb namn i listan jobb.

Ta bort ett jobb

Om du vill ta bort ett jobb klickar du på x i kolumnen åtgärd i listan jobb.

Biblioteksberoenden

Spark-drivrutinen har vissa biblioteks beroenden som inte kan åsidosättas. Biblioteken prioriteras över alla dina egna bibliotek som är i konflikt med dem.

Om du vill hämta en fullständig lista över beroenden för driv rutins bibliotek kör du följande kommando i en antecknings bok som är ansluten till ett kluster med samma Spark-version (eller klustret med den driv rutin som du vill undersöka).

%sh
ls /databricks/jars

Hantera biblioteks beroenden

En lämplig regel för tummen vid hantering av biblioteks beroenden när du skapar jar v7 för jobb är att Visa Spark och Hadoop som provided beroenden. På maven lägger du till Spark och/eller Hadoop som tillhandahållna beroenden som visas i följande exempel.

<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-core_2.11</artifactId>
  <version>2.3.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>org.apache.hadoop</groupId>
  <artifactId>hadoop-core</artifactId>
  <version>1.2.1</version>
  <scope>provided</scope>
</dependency>

I sbt lägger du till Spark och Hadoop enligt de angivna beroendena som visas i följande exempel.

libraryDependencies += "org.apache.spark" %% "spark-core" % "2.3.0" % "provided"
libraryDependencies += "org.apache.hadoop" %% "hadoop-core" % "1.2.1" % "provided"

Tips

Ange rätt Scala-version för dina beroenden baserat på vilken version du kör.

Avancerade jobbalternativ

Maximalt antal samtidiga körningar

Det maximala antalet körningar som kan köras parallellt. Vid start av en ny körning hoppar Azure Databricks över körningen om det maximala antalet aktiva körningar redan har nåtts för jobbet. Ange det här värdet högre än standardvärdet 1 om du vill kunna utföra flera körningar av samma jobb samtidigt. Detta är användbart till exempel om du utlöser jobbet enligt ett frekvent schema och vill tillåta att efterföljande körningar överlappar varandra, eller om du vill utlösa flera körningar som skiljer sig åt av deras indataparametrar.

Aviseringar

E-postaviseringar skickas i händelse av misslyckad jobb, lyckades eller tids gräns. Du kan ställa in aviseringar för jobb Start, slutfört jobb och jobb haveri (inklusive överhoppade jobb), vilket ger flera kommaavgränsade e-postadresser för varje aviserings typ. Du kan också välja bort aviseringar för ignorerade jobb körningar.

Konfigurera e-postaviseringar

Integrera dessa e-postaviseringar med dina favorit aviserings verktyg, inklusive:

Standardvärde

Maximal slut för ande tid för ett jobb. Om jobbet inte slutförs under den här tiden, ställer Databricks in dess status till "tids gränsen uppnåddes".

Antal försök

En princip som fastställer när och hur många gånger som misslyckade körningar görs.

Återförsöksprincip

Anteckning

Om du konfigurerar både timeout och nya försök gäller tids gränsen för varje nytt försök.

Kontrol lera åtkomst till jobb

Åtkomst kontroll för jobb aktivera jobb ägare och administratörer för att ge detaljerade behörigheter för sina jobb. Med jobb åtkomst kontroller kan jobb ägare välja vilka andra användare eller grupper som ska kunna se resultatet av jobbet. Ägare kan också välja vem som kan hantera körningar av sitt jobb (det vill säga anropa kör nu och avbryta.)

Se jobb åtkomst kontroll för mer information.