Udostępnij za pośrednictwem


Skrypty inicjalizacyjne w zakresie klastra

Skrypty inicjowania w ramach klastra to skrypty inicjowania zdefiniowane w konfiguracji klastra. Skrypty inicjalizacyjne o zakresie klastra mają zastosowanie zarówno do klastrów, które tworzysz, jak i tych tworzonych w celu uruchamiania zadań.

Skrypty inicjalizacyjne o zasięgu klastra można skonfigurować za pomocą interfejsu użytkownika, wiersza polecenia i interfejsu API klastrów. Ta sekcja koncentruje się na wykonywaniu tych zadań przy użyciu interfejsu użytkownika. W przypadku innych metod zapoznaj się z interfejsem CLI Databricks oraz interfejsem API Clusters.

Można dodać dowolną liczbę skryptów, a skrypty są wykonywane sekwencyjnie w podanej kolejności.

Jeśli skrypt inicjowania dla klastra zwraca kod zakończenia inny niż zero, uruchomienie klastra nie powiedzie się. Możesz rozwiązać problemy ze skryptami inicjującymi w zakresie klastra, konfigurując dostarczanie dzienników klastra i sprawdzając dziennik skryptów inicjowania. Zobacz Rejestrowanie skryptów inicjujących.

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 specyficznymi dla klastra. Jeśli używasz obliczeń w standardowym lub dedykowanym trybie dostępu (dawniej tryb udostępniony i tryb dostępu pojedynczego użytkownika), przechowuj skrypty inicjujące w woluminach katalogu Unity. Jeśli używasz obliczenia w trybie dostępu współdzielonego bez izolacji, skorzystaj z plików obszaru pracy dla skryptów inicjalizacyjnych.

W przypadku standardowego trybu dostępu należy dodać skrypty inicjowania do allowlist. Zobacz listę dozwolonych bibliotek i skrypty inicjujące dla obliczeń w standardowym trybie dostępu (dawniej znany jako tryb współdzielonego dostępu).

Aby skonfigurować klaster do uruchamiania skryptu inicjowania przy użyciu interfejsu użytkownika, wykonaj następujące kroki:

  1. Na tej stronie konfiguracji klastra kliknij przełącznik Zaawansowane.
  2. W dolnej części strony kliknij kartę Skrypty inicjowania .
  3. Wybierz typ źródła Workspace, Volumelub ABFSS z listy rozwijanej Źródło.
  4. Określ ścieżkę do skryptu inicjowania, na przykład jedną z następujących przykładów:
    • W przypadku skryptu inicjowania przechowywanego w plikach obszaru roboczego: /Workspace/<path-to-script>/<script-name>.sh
    • W przypadku skryptu inicjowania przechowywanego z woluminami Unity Catalog: /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
  5. Kliknij przycisk Dodaj.

W trybie dedykowanego dostępu jest używana tożsamość przypisanej jednostki (użytkownika lub jednostki usługi).

W standardowym trybie dostępu używana jest 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 standardowy tryb dostępu.

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ł załadowany.

Uwaga

Jeśli skonfigurujesz skrypt inicjowania przy użyciu ABFSS typu źródła, musisz skonfigurować poświadczenia dostępu.

Databricks zaleca używanie zasad usług Microsoft Entra ID do zarządzania dostępem do skryptów inicjowania przechowywanych w usłudze Azure Data Lake Storage. Aby ukończyć tę konfigurację, użyj następującej połączonej dokumentacji:

  1. Utwórz zasadę usługi z uprawnieniami do odczytu i przeglądu dla żądanych obiektów blob. Zobacz Uzyskiwanie dostępu do magazynu przy użyciu zasady usługi i identyfikatora Microsoft Entra ID (Azure Active Directory).

  2. Zapisz poświadczenia używając sekretów. Zobacz Zarządzaj tajemnicami.

  3. 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>}}
    
  4. (Opcjonalnie) Refaktoryzacja skryptów inicjowania przy użyciu narzędzia azcopy lub interfejsu wiersza polecenia platformy Azure.

    Można odwoływać się do zmiennych środowiskowych ustawionych podczas konfigurowania klastra w skryptach inicjowania, aby przekazywać poświadczenia przechowywane jako tajemnice do weryfikacji.

Ostrzeżenie

Skrypty inicjalizacyjne dla klastrów w systemie plików DBFS zostały wycofane. 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 inicjalizacyjnymi na poziomie 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.