Inicializační skripty omezené na cluster
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 v Unity Catalogvolumes. 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 allowlist
př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:
- Na stránce konfigurace clusteru klikněte na přepínač Upřesnit možnosti .
- V dolní části stránky klikněte na kartu Inicializační skripty .
- V rozevíracím seznamu
Zdroj pracovního prostoru , svazku nebo typu zdroje ABFSS. - 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
- Inicializační skript uložený v Unity Catalogvolumes:
/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
- Pro inicializační skript uložený v souborech pracovního prostoru:
- 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 volumes, ale používá stejné přiřazení identity jako režim sdíleného přístupu.
Pokud chcete remove skript z konfigurace clusteru, klikněte na ikonu koše v pravé části 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řístup credentials.
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:
Vytvořte principál služby s oprávněními ke čtení a list pro vámi vybrané objekty blob. Viz Access storage using a service principal & Microsoft Entra ID(Azure Active Directory).
Uložte credentials pomocí tajných kódů. Viz Správa tajných kódů.
Set vlastnosti v konfiguraci Sparku a proměnných prostředí při vytváření clusteru, 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>}}
(Volitelné) Refaktoring inicializačních skriptů pomocí azcopy nebo Azure CLI
Proměnné prostředí můžete odkazovat set během konfigurace clusteru v rámci inicializačních skriptů a předávat credentials uložené jako tajemství 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í.