Použití inicializačních skriptů s oborem clusteru

Inicializační skripty v oboru clusteru jsou inicializační skripty definované v konfiguraci clusteru. Inicializační skripty s oborem clusteru se vztahují na clustery, které vytvoříte, a pro spouštění úloh.

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

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 v oboru clusteru můžete řešit konfigurací doručování protokolů 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 inicializační skripty jako inicializační skripty v oboru clusteru. Pokud používáte výpočetní prostředky se sdíleným nebo jedním uživatelským režimem přístupu, 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 režim sdíleného přístupu je nutné do souboru allowlistpřidat inicializační skripty . Viz Knihovny allowlist a inicializační skripty pro sdílené výpočetní prostředky.

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č Upřesnit možnosti .
  2. V dolní části stránky klikněte na kartu Inicializační skripty .
  3. V rozevíracím seznamu Zdroj vyberte typ zdroje 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 domovském adresáři se soubory pracovního prostoru: /Users/<user-name>/<script-name>.sh.
    • Inicializační skript uložený se svazky katalogu Unity: /Volumes/<catalog>/<schema>/<volume>/<path-to-script>/<script-name>.sh.
    • Inicializační skript uložený s úložištěm 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 přístupu jednoho uživatele se používá identita přiřazeného objektu (uživatele nebo instančního objektu).

V režimu sdíleného přístupu se používá identita vlastníka clusteru.

Poznámka:

Režim sdíleného přístupu bez izolace nepodporuje svazky, ale používá stejné přiřazení identity jako režim sdíleného 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 instanční objekty Microsoft Entra ID ke správě přístupu k inicializačním skriptům uloženým v Azure Data Lake Storage Gen2. K dokončení tohoto nastavení použijte následující propojenou dokumentaci:

  1. Vytvořte instanční objekt s oprávněními ke čtení a výpisu požadovaných objektů blob. Viz Access Storage s Microsoft Entra ID (dříve Azure Active Directory) pomocí instančního objektu.

  2. Uložte přihlašovací údaje pomocí tajných kódů. Podívejte se na tajné kódy.

  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é) Refaktoring inicializačních skriptů pomocí azcopy nebo Azure CLI

    Proměnné prostředí nastavené během konfigurace clusteru v inicializačních skriptech můžete odkazovat na přihlašovací údaje uložené jako tajné kódy pro ověření.

Upozorňující

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íží se skripty inicializačních skriptů v oboru clusteru

  • Skript musí existovat v nakonfigurované lokalitě. Pokud skript neexistuje, pokusí se spustit cluster nebo vertikálně navýšit kapacitu exekutorů a způsobit 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í.