Skrypty init o zakresie klastra
Skrypty inicjowania o zakresie klastra to skrypty inicjowania zdefiniowane w konfiguracji klastra. Skrypty inicjowania o zakresie klastra mają zastosowanie zarówno do utworzonych klastrów, jak i utworzonych w celu uruchamiania zadań.
Skrypty inicjowania o zakresie klastra można skonfigurować przy użyciu interfejsu użytkownika, interfejsu wiersza polecenia i wywoływania interfejsu API klastrów. Ta sekcja koncentruje się na wykonywaniu tych zadań przy użyciu interfejsu użytkownika. Inne metody można znaleźć w interfejsie wiersza polecenia usługi Databricks i interfejsie API klastrów.
Można dodać dowolną liczbę skryptów, a skrypty są wykonywane sekwencyjnie w podanej kolejności.
Jeśli skrypt inicjowania o zakresie klastra zwraca kod zakończenia inny niż zero, uruchomienie klastra zakończy się niepowodzeniem. Możesz rozwiązać problemy ze skryptami inicjowania o zakresie klastra, konfigurując dostarczanie dzienników klastra i sprawdzając dziennik skryptów inicjowania. Zobacz Rejestrowanie skryptów init.
Konfigurowanie skryptu inicjowania o zakresie klastra przy użyciu interfejsu użytkownika
Ta sekcja zawiera instrukcje dotyczące konfigurowania klastra do uruchamiania skryptu inicjowania przy użyciu interfejsu użytkownika usługi Azure Databricks.
Usługa Databricks zaleca zarządzanie wszystkimi skryptami inicjowania jako skryptami inicjowania o zakresie klastra. Jeśli używasz obliczeń z trybem dostępu współużytkowanego lub pojedynczego użytkownika, przechowuj skrypty inicjowania w woluminach wykazu aparatu Unity. Jeśli używasz obliczeń z trybem dostępu współdzielonego bez izolacji, użyj plików obszaru roboczego dla skryptów inicjowania.
W przypadku trybu dostępu współdzielonego należy dodać skrypty inicjowania do elementu allowlist
. Zobacz Allowlist libraries and init scripts on shared compute (Biblioteki dozwolonych i skrypty inicjowania w udostępnionych obliczeniach).
Aby skonfigurować klaster do uruchamiania skryptu inicjowania przy użyciu interfejsu użytkownika, wykonaj następujące kroki:
- Na stronie konfiguracja klastra kliknij przełącznik Opcje zaawansowane.
- W dolnej części strony kliknij kartę Skrypty inicjowania .
- Z listy rozwijanej Źródło wybierz typ źródła Obszar roboczy, Wolumin lub ABFSS.
- Określ ścieżkę do skryptu inicjowania, na przykład jedną z następujących przykładów:
- W przypadku skryptu inicjowania przechowywanego w katalogu głównym z plikami obszaru roboczego:
/Users/<user-name>/<script-name>.sh
. - W przypadku skryptu init przechowywanego z woluminami wykazu aparatu Unity:
/Volumes/<catalog>/<schema>/<volume>/<path-to-script>/<script-name>.sh
. - W przypadku skryptu inicjowania przechowywanego z magazynem obiektów:
abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/init-script
.
- W przypadku skryptu inicjowania przechowywanego w katalogu głównym z plikami obszaru roboczego:
- Kliknij przycisk Dodaj.
W trybie dostępu pojedynczego użytkownika jest używana tożsamość przypisanej jednostki (użytkownika lub jednostki usługi).
W trybie dostępu współdzielonego jest używana tożsamość właściciela klastra.
Uwaga
Tryb dostępu współdzielonego bez izolacji nie obsługuje woluminów, ale używa tego samego przypisania tożsamości co tryb dostępu współdzielonego.
Aby usunąć skrypt z konfiguracji klastra, kliknij ikonę kosza po prawej stronie skryptu. Po potwierdzeniu usunięcia zostanie wyświetlony monit o ponowne uruchomienie klastra. Opcjonalnie możesz usunąć plik skryptu z lokalizacji, do której został przekazany.
Uwaga
Jeśli skonfigurujesz skrypt inicjowania przy użyciu typu źródła ABFSS , musisz skonfigurować poświadczenia dostępu.
Usługa Databricks zaleca używanie jednostek usługi Microsoft Entra ID do zarządzania dostępem do skryptów inicjowania przechowywanych w usłudze Azure Data Lake Storage Gen2. Aby ukończyć tę konfigurację, użyj następującej połączonej dokumentacji:
Utwórz jednostkę usługi z uprawnieniami do odczytu i listy dla żądanych obiektów blob. Zobacz Uzyskiwanie dostępu do magazynu przy użyciu jednostki usługi i identyfikatora entra firmy Microsoft (Azure Active Directory).
Zapisz poświadczenia przy użyciu wpisów tajnych. Zobacz Zarządzanie wpisami tajnymi.
Ustaw właściwości w konfiguracji platformy Spark i zmiennych środowiskowych podczas tworzenia klastra, jak w poniższym przykładzie:
Konfiguracja platformy Spark:
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
Zmienne środowiskowe:
SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
(Opcjonalnie) Refaktoryzacja skryptów inicjowania przy użyciu narzędzia azcopy lub interfejsu wiersza polecenia platformy Azure.
Zmienne środowiskowe ustawione podczas konfigurowania klastra w skryptach inicjowania można odwoływać się do przekazywania poświadczeń przechowywanych jako wpisy tajne do weryfikacji.
Ostrzeżenie
Skrypty inicjowania w zakresie klastra w systemie plików DBFS są zakończone. Opcja DBFS w interfejsie użytkownika istnieje w niektórych obszarach roboczych do obsługi starszych obciążeń i nie jest zalecana. Wszystkie skrypty inicjowania przechowywane w systemie plików DBFS powinny być migrowane. Aby uzyskać instrukcje dotyczące migracji, zobacz Migrowanie skryptów inicjowania z systemu plików DBFS.
Rozwiązywanie problemów ze skryptami inicjowania o zakresie klastra
- Skrypt musi istnieć w skonfigurowanej lokalizacji. Jeśli skrypt nie istnieje, próba uruchomienia klastra lub skalowanie w górę funkcji wykonawczej spowoduje niepowodzenie.
- Skrypt inicjowania nie może być większy niż 64 KB. Jeśli skrypt przekroczy ten rozmiar, uruchomienie klastra zakończy się niepowodzeniem, a w dzienniku klastra pojawi się komunikat o błędzie.