Init-scripts met clusterbereik gebruiken

Init-scripts met clusterbereik zijn init-scripts die zijn gedefinieerd in een clusterconfiguratie. Init-scripts met clusterbereik zijn van toepassing op beide clusters die u maakt en de clusters die u maakt om taken uit te voeren.

U kunt init-scripts met clusterbereik configureren met behulp van de gebruikersinterface, de CLI en door de Clusters-API aan te roepen. Deze sectie is gericht op het uitvoeren van deze taken met behulp van de gebruikersinterface. Zie de Databricks CLI en de Clusters-API voor de andere methoden.

U kunt een willekeurig aantal scripts toevoegen en de scripts worden opeenvolgend uitgevoerd in de opgegeven volgorde.

Als een init-script met clusterbereik een afsluitcode retourneert die niet nul is, mislukt het starten van het cluster. U kunt problemen met init-scripts met clusterbereik oplossen door de levering van clusterlogboeken te configureren en het logboek van het init-script te controleren. Zie Logboekregistratie van Init-scripts.

Een init-script met clusterbereik configureren met behulp van de gebruikersinterface

Deze sectie bevat instructies voor het configureren van een cluster voor het uitvoeren van een init-script met behulp van de Gebruikersinterface van Azure Databricks.

Databricks raadt aan om alle init-scripts te beheren als init-scripts met clusterbereik. Als u rekenkracht gebruikt met de modus voor gedeelde of individuele gebruikerstoegang, slaat u init-scripts op in Unity Catalog-volumes. Als u rekenkracht gebruikt met de modus voor gedeelde toegang zonder isolatie, gebruikt u werkruimtebestanden voor init-scripts.

Voor de modus voor gedeelde toegang moet u init-scripts toevoegen aan de allowlist. Zie Allowlist-bibliotheken en init-scripts voor gedeelde berekeningen.

Als u de gebruikersinterface wilt gebruiken om een cluster te configureren voor het uitvoeren van een init-script, voert u de volgende stappen uit:

  1. Klik op de pagina clusterconfiguratie op de wisselknop Geavanceerde opties .
  2. Klik onder aan de pagina op het tabblad Init-scripts .
  3. Selecteer in de vervolgkeuzelijst Bron het brontype Werkruimte, Volume of ABFSS .
  4. Geef een pad op naar het init-script, zoals een van de volgende voorbeelden:
    • Voor een init-script dat is opgeslagen in uw basismap met werkruimtebestanden: /Users/<user-name>/<script-name>.sh.
    • Voor een init-script dat is opgeslagen met Unity Catalog-volumes: /Volumes/<catalog>/<schema>/<volume>/<path-to-script>/<script-name>.sh.
    • Voor een init-script dat is opgeslagen met objectopslag: abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/init-script.
  5. Klik op Toevoegen.

In de toegangsmodus voor één gebruiker wordt de identiteit van de toegewezen principal (een gebruiker of service-principal) gebruikt.

In de modus voor gedeelde toegang wordt de identiteit van de clustereigenaar gebruikt.

Notitie

Gedeelde toegangsmodus zonder isolatie biedt geen ondersteuning voor volumes, maar maakt gebruik van dezelfde identiteitstoewijzing als de modus voor gedeelde toegang.

Als u een script uit de clusterconfiguratie wilt verwijderen, klikt u op het prullenbakpictogram rechts van het script. Wanneer u de verwijdering bevestigt, wordt u gevraagd het cluster opnieuw op te starten. U kunt het scriptbestand desgewenst verwijderen van de locatie waarnaar u het hebt geüpload.

Notitie

Als u een init-script configureert met behulp van het ABFSS-brontype , moet u toegangsreferenties configureren.

Databricks raadt aan om service-principals van Microsoft Entra ID te gebruiken voor het beheren van toegang tot init-scripts die zijn opgeslagen in Azure Data Lake Storage Gen2. Gebruik de volgende gekoppelde documentatie om deze installatie te voltooien:

  1. Maak een service-principal met lees- en lijstmachtigingen voor uw gewenste blobs. Zie Access Storage met behulp van een service-principal en Microsoft Entra ID (Azure Active Directory).

  2. Sla uw referenties op met behulp van geheimen. Zie geheimen.

  3. Stel de eigenschappen in de Spark-configuratie en omgevingsvariabelen in tijdens het maken van een cluster, zoals in het volgende voorbeeld:

    Spark-configuratie:

    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
    

    Omgevingsvariabelen:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Optioneel) Init-scripts herstructureren met azcopy of de Azure CLI.

    U kunt verwijzen naar omgevingsvariabelen die zijn ingesteld tijdens de clusterconfiguratie in uw init-scripts om referenties door te geven die zijn opgeslagen als geheimen voor validatie.

Waarschuwing

Init-scripts met clusterbereik op DBFS zijn het einde van de levensduur. De DBFS-optie in de gebruikersinterface bestaat in sommige werkruimten ter ondersteuning van verouderde workloads en wordt niet aanbevolen. Alle init-scripts die zijn opgeslagen in DBFS, moeten worden gemigreerd. Zie Init-scripts migreren vanuit DBFS voor migratie-instructies.

Problemen met init-scripts met clusterbereik oplossen

  • Het script moet bestaan op de geconfigureerde locatie. Als het script niet bestaat, wordt geprobeerd het cluster te starten of de uitvoerders omhoog te schalen.
  • Het init-script mag niet groter zijn dan 64 kB. Als een script deze grootte overschrijdt, kan het cluster niet worden gestart en wordt er een foutbericht weergegeven in het clusterlogboek.