Använda init-skript med klusteromfattning

Init-skript med klusteromfattning är init-skript som definieras i en klusterkonfiguration. Init-skript med klusteromfattning gäller för båda kluster som du skapar och de som skapats för att köra jobb.

Du kan konfigurera init-skript med klusteromfattning med hjälp av användargränssnittet, CLI och genom att anropa kluster-API:et. Det här avsnittet fokuserar på att utföra dessa uppgifter med hjälp av användargränssnittet. De andra metoderna finns i Databricks CLI och Kluster-API:et.

Du kan lägga till valfritt antal skript och skripten körs sekventiellt i den angivna ordningen.

Om ett init-skript med klusteromfattning returnerar en slutkod som inte är noll misslyckas klusterstarten. Du kan felsöka init-skript med klusteromfattning genom att konfigurera klusterloggleverans och undersöka init-skriptloggen. Se Loggning av Init-skript.

Konfigurera ett init-skript med klusteromfattning med hjälp av användargränssnittet

Det här avsnittet innehåller instruktioner för hur du konfigurerar ett kluster för att köra ett init-skript med hjälp av Azure Databricks-användargränssnittet.

Databricks rekommenderar att du hanterar alla init-skript som init-skript med klusteromfattning. Om du använder beräkning med åtkomstläge för delad eller enskild användare lagrar du init-skript i Unity Catalog-volymer. Om du använder beräkning utan isoleringsläge för delad åtkomst använder du arbetsytefiler för init-skript.

För läget för delad åtkomst måste du lägga till init-skript i allowlist. Se Tillåtlista bibliotek och init-skript för delad beräkning.

Utför följande steg om du vill använda användargränssnittet för att konfigurera ett kluster för att köra ett init-skript:

  1. På sidan klusterkonfiguration klickar du på växlingsknappen Avancerade alternativ .
  2. Längst ned på sidan klickar du på fliken Init-skript .
  3. I listrutan Källa väljer du källtypen Arbetsyta, Volym eller ABFSS.
  4. Ange en sökväg till init-skriptet, till exempel något av följande exempel:
    • För ett init-skript som lagras i din hemkatalog med arbetsytefiler: /Users/<user-name>/<script-name>.sh.
    • För ett init-skript som lagras med Unity Catalog-volymer: /Volumes/<catalog>/<schema>/<volume>/<path-to-script>/<script-name>.sh.
    • För ett init-skript som lagras med objektlagring: abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/init-script.
  5. Klicka på Lägg till.

I åtkomstläge för en användare används identiteten för det tilldelade huvudnamnet (en användare eller tjänstens huvudnamn).

I läget för delad åtkomst används klusterägarens identitet.

Kommentar

Läget för delad åtkomst utan isolering stöder inte volymer, men använder samma identitetstilldelning som läget för delad åtkomst.

Om du vill ta bort ett skript från klusterkonfigurationen klickar du på papperskorgsikonen till höger om skriptet. När du bekräftar borttagningen uppmanas du att starta om klustret. Du kan också ta bort skriptfilen från den plats där du laddade upp den.

Kommentar

Om du konfigurerar ett init-skript med ABFSS-källtypen måste du konfigurera åtkomstautentiseringsuppgifter.

Databricks rekommenderar att du använder Tjänstens huvudnamn för Microsoft Entra ID för att hantera åtkomst till init-skript som lagras i Azure Data Lake Storage Gen2. Använd följande länkade dokumentation för att slutföra den här installationen:

  1. Skapa ett huvudnamn för tjänsten med läs- och listbehörigheter för dina önskade blobar. Se Åtkomstlagring med hjälp av en tjänstprincip och Microsoft Entra-ID (Azure Active Directory).

  2. Spara dina autentiseringsuppgifter med hjälp av hemligheter. Se Hemligheter.

  3. Ange egenskaperna i Spark-konfigurations- och miljövariablerna när du skapar ett kluster, som i följande exempel:

    Spark-konfiguration:

    spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth
    spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
    spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id>
    spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}}
    spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<tenant-id>/oauth2/token
    

    Miljövariabler:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Valfritt) Omstrukturera init-skript med azcopy eller Azure CLI.

    Du kan referera till miljövariabler som angetts under klusterkonfigurationen i dina init-skript för att skicka autentiseringsuppgifter som lagras som hemligheter för validering.

Varning

Init-skript med klusteromfattning i DBFS är livslängdens slut. DBFS-alternativet i användargränssnittet finns på vissa arbetsytor för att stödja äldre arbetsbelastningar och rekommenderas inte. Alla init-skript som lagras i DBFS ska migreras. Migreringsinstruktioner finns i Migrera init-skript från DBFS.

Felsöka init-skript med klusteromfattning

  • Skriptet måste finnas på den konfigurerade platsen. Om skriptet inte finns resulterar försök att starta klustret eller skala upp körarna i fel.
  • Init-skriptet får inte vara större än 64 KB. Om ett skript överskrider den storleken kan klustret inte startas och ett felmeddelande visas i klusterloggen.