Sdílet prostřednictvím


Inicializační skripty omezené na cluster

Inicializační skripty v oboru clusteru jsou ty, které jsou definovány v konfiguraci clusteru. Inicializační skripty s oborem clusteru se vztahují na clustery, které vytvoříte, i na ty, které jsou vytvořeny pro spouštění úloh.

Inicializační skripty v rámci clustru můžete nakonfigurovat pomocí uživatelského rozhraní, rozhraní příkazového řádku a vyvoláním Clusters API. Tato část se zaměřuje na provádění těchto úloh pomocí uživatelského rozhraní. Další metody najdete v Databricks CLI a Clusters API.

Můžete přidat libovolný počet skriptů a skripty se spouští postupně v zadaném pořadí.

Pokud inicializační skript s oborem clusteru vrátí nenulový ukončovací kód, spuštění clusteru selže. Inicializační skripty omezené na cluster můžete řešit konfigurací doručování logů clusteru a prozkoumáním protokolu inicializačních skriptů. Viz protokolování inicializačního skriptu.

Konfigurace inicializačního skriptu s oborem clusteru pomocí uživatelského rozhraní

Tato část obsahuje pokyny ke konfiguraci clusteru pro spuštění inicializačního skriptu pomocí uživatelského rozhraní Azure Databricks.

Databricks doporučuje spravovat všechny init skripty jako skripty omezené na clustery. Pokud používáte výpočetní prostředky se standardním nebo vyhrazeným režimem přístupu (dříve sdílený režim a režim přístupu jednoho uživatele), uložte inicializační skripty ve svazcích katalogu Unity. Pokud používáte výpočetní prostředky bez izolace v režimu sdíleného přístupu, použijte soubory pracovního prostoru pro inicializační skripty.

Pro standardní režim přístupu je nutné přidat inicializační skripty do allowlist. Viz Knihovny povolených seznamů a inicializační skripty na výpočetních prostředcích pomocí standardního režimu přístupu (dříve režimu sdíleného přístupu).

Pokud chcete použít uživatelské rozhraní ke konfiguraci clusteru pro spuštění inicializačního skriptu, proveďte následující kroky:

  1. Na stránce konfigurace clusteru klikněte na přepínač Pokročilé.
  2. V dolní části stránky klikněte na kartu Inicializační skripty .
  3. V rozevíracím seznamu zdrojů vyberte Pracovní prostor, Svazek nebo ABFSS.
  4. Zadejte cestu k inicializačnímu skriptu, například jeden z následujících příkladů:
    • Pro inicializační skript uložený v souborech pracovního prostoru: /Workspace/<path-to-script>/<script-name>.sh
    • Pro iniciační skript ve svazcích katalogu Unity: /Volumes/<catalog>/<schema>/<volume>/<path-to-script>/<script-name>.sh
    • Inicializační skript uložený v úložišti objektů: abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/init-script
  5. Klikněte na tlačítko Přidat.

V režimu vyhrazeného přístupu se používá identita přiřazeného hlavního subjektu (uživatele nebo služebního hlavního subjektu).

Ve standardním režimu přístupu se používá identita vlastníka clusteru.

Poznámka:

Režim sdíleného přístupu bez izolace sice nepodporuje svazky, ale používá stejné přiřazení identity jako standardní režim přístupu.

Pokud chcete skript z konfigurace clusteru odebrat, klikněte na ikonu koše napravo od skriptu. Po potvrzení odstranění se zobrazí výzva k restartování clusteru. Volitelně můžete odstranit soubor skriptu z umístění, do něhož jste ho nahráli.

Poznámka:

Pokud konfigurujete inicializační skript pomocí typu zdroje ABFSS , musíte nakonfigurovat přihlašovací údaje pro přístup.

Databricks doporučuje používat hlavní prvky služby Microsoft Entra ID ke správě přístupu k inicializačním skriptům uloženým v Azure Data Lake Storage. K dokončení tohoto nastavení použijte následující propojenou dokumentaci:

  1. Vytvořte objekt služby s oprávněními ke čtení a vypisování požadovaných blobů. Viz Přístup ke skladu pomocí hlavního servisu & Microsoft Entra ID (Azure Active Directory).

  2. Uložte přihlašovací údaje pomocí tajných kódů. Viz Správa tajemství.

  3. Při vytváření clusteru nastavte vlastnosti v konfiguraci Sparku a proměnných prostředí, jak je znázorněno v následujícím příkladu:

    Konfigurace Sparku:

    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
    

    Proměnné prostředí:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Volitelné) Přepracujte inicializační skripty s využitím azcopy nebo Azure CLI.

    V inicializačních skriptech můžete používat proměnné prostředí nastavené během konfigurace clusteru k předání přihlašovacích údajů uložených jako tajné kódy pro ověření.

Varování

Inicializační skripty s oborem clusteru v DBFS jsou koncové. Možnost DBFS v uživatelském rozhraní existuje v některých pracovních prostorech pro podporu starších úloh a nedoporučuje se. Všechny inicializační skripty uložené v DBFS by se měly migrovat. Pokyny k migraci najdete v tématu Migrace inicializačních skriptů z DBFS.

Řešení potíží s inicializačními skripty v oboru clusteru

  • Skript musí existovat v nakonfigurované lokalitě. Pokud skript neexistuje, pokusy o spuštění clusteru nebo navýšení exekutorské kapacity budou mít za následek selhání.
  • Inicializační skript nemůže být větší než 64 kB. Pokud skript tuto velikost překročí, cluster se nespustí a v protokolu clusteru se zobrazí zpráva o selhání.