Co to są skrypty inicjowania?

Skrypt inicjowania (skrypt inicjowania) to skrypt powłoki uruchamiany podczas uruchamiania każdego węzła klastra przed uruchomieniem sterownika platformy Apache Spark lub funkcji wykonawczej JVM. Ten artykuł zawiera zalecenia dotyczące skryptów inicjowania i informacji o konfiguracji, jeśli musisz ich użyć.

Rekomendacje dla skryptów inicjowania

Usługa Databricks zaleca używanie wbudowanych funkcji platformy zamiast skryptów inicjowania, gdy tylko jest to możliwe. Powszechne stosowanie skryptów init może spowolnić migrację do nowych wersji środowiska Databricks Runtime i zapobiec wdrożeniu niektórych optymalizacji usługi Databricks.

Ważne

Jeśli musisz przeprowadzić migrację ze skryptów init w systemie plików DBFS, zobacz Migrowanie skryptów inicjowania z systemu plików DBFS.

Następujące funkcje usługi Databricks dotyczą niektórych typowych przypadków użycia skryptów inicjowania:

  • Użyj zasad obliczeniowych, aby ustawić właściwości systemu, zmienne środowiskowe i parametry konfiguracji platformy Spark. Zobacz Dokumentacja zasad obliczeniowych.
  • Dodawanie bibliotek do zasad klastra. Zobacz Dodawanie bibliotek do zasad.

Jeśli musisz użyć skryptów init:

  • Zarządzanie skryptami inicjowania przy użyciu zasad obliczeniowych lub skryptów inicjowania o zakresie klastra, a nie globalnych skryptów inicjowania. Zobacz typy skryptów init.
  • Zarządzanie instalacją biblioteki dla środowisk produkcyjnych i interaktywnych przy użyciu zasad obliczeniowych. Nie instaluj bibliotek przy użyciu skryptów init.
  • Użyj trybu dostępu współdzielonego dla wszystkich obciążeń. Używaj trybu dostępu pojedynczego użytkownika tylko wtedy, gdy wymagane funkcje nie są obsługiwane przez tryb dostępu współdzielonego.
  • Użyj nowych wersji środowiska Databricks Runtime i wykazu aparatu Unity dla wszystkich obciążeń.

Poniższa tabela zawiera zalecenia zorganizowane przez wersję środowiska Databricks Runtime i włączanie wykazu aparatu Unity.

Środowisko Zalecenie
Databricks Runtime 13.3 LTS i nowsze z wykazem aparatu Unity Przechowywanie skryptów inicjowania w woluminach wykazu aparatu Unity.
Databricks Runtime 11.3 LTS lub nowszy bez wykazu aparatu Unity Przechowuj skrypty inicjowania jako pliki obszaru roboczego. (Limit rozmiaru pliku to 500 MB).
Środowisko Databricks Runtime 10.4 LTS i starsze Przechowywanie skryptów inicjowania przy użyciu magazynu obiektów w chmurze.

Jakie typy skryptów inicjowania obsługuje usługa Azure Databricks?

Usługa Azure Databricks obsługuje dwa rodzaje skryptów inicjowania: skrypty inicjowania o zakresie klastra i globalne, ale zalecane są użycie skryptów inicjowania o zakresie klastra.

  • Zakres klastra: uruchamiany w każdym klastrze skonfigurowanym za pomocą skryptu. Jest to zalecany sposób uruchamiania skryptu init. Zobacz Używanie skryptów inicjowania o zakresie klastra.
  • Globalny: uruchom wszystkie klastry w obszarze roboczym skonfigurowanym z trybem dostępu pojedynczego użytkownika lub trybem dostępu współużytkowanego bez izolacji. Te skrypty inicjowania mogą powodować nieoczekiwane problemy, takie jak konflikty biblioteki. Tylko administratorzy obszaru roboczego mogą tworzyć globalne skrypty inicjowania. Zobacz Używanie globalnych skryptów inicjowania.

Za każdym razem, gdy zmienisz dowolny typ skryptu inicjowania, musisz ponownie uruchomić wszystkie klastry, na które ma wpływ skrypt.

Globalne skrypty inicjowania są uruchamiane przed skryptami inicjowania o zakresie klastra.

Ważne

Starsze globalne i starsze skrypty inicjowania o nazwie klastra są uruchamiane przed innymi skryptami inicjowania. Te skrypty inicjowania są zakończone, ale mogą być obecne w obszarach roboczych utworzonych przed 21 lutego 2023 r. Zobacz Skrypty inicjowania o nazwie klastra (starsza wersja) i Globalne skrypty inicjowania (starsza wersja).

Gdzie można zainstalować skrypty inicjowania?

Skrypty inicjowania można przechowywać i konfigurować z plików obszaru roboczego, woluminów wykazu aparatu Unity i magazynu obiektów w chmurze, ale skrypty inicjowania nie są obsługiwane we wszystkich konfiguracjach klastra, a nie wszystkie pliki mogą być przywoływane ze skryptów inicjowania.

W poniższej tabeli przedstawiono obsługę skryptów inicjowania na podstawie lokalizacji źródłowej i trybu dostępu do klastra. Wyświetlona wersja środowiska Databricks Runtime jest minimalną wersją wymaganą do użycia kombinacji. Aby uzyskać informacje o trybach dostępu do klastra, zobacz Tryby dostępu.

Uwaga

Tryb dostępu współdzielonego wymaga od administratora dodania skryptów inicjowania do elementu allowlist. Zobacz Allowlist libraries and init scripts on shared compute (Biblioteki dozwolonych i skrypty inicjowania w udostępnionych obliczeniach).

Tryb dostępu współdzielonego Tryb pojedynczego dostępu Tryb dostępu współdzielonego bez izolacji
Pliki obszaru roboczego Nieobsługiwane Wszystkie obsługiwane wersje środowiska Databricks Runtime Wszystkie obsługiwane wersje środowiska Databricks Runtime
Woluminów 13.3 LTS 13.3 LTS Nieobsługiwane
Magazyn w chmurze 13.3 LTS Wszystkie obsługiwane wersje środowiska Databricks Runtime Wszystkie obsługiwane wersje środowiska Databricks Runtime

Migrowanie skryptów inicjowania z systemu plików DBFS

Ostrzeżenie

Skrypty inicjowania w systemie plików DBFS osiągnęły koniec życia i nie można ich już używać. Przed rozpoczęciem obliczeń należy przeprowadzić migrację skryptów inicjowania do obsługiwanej lokalizacji. Przechowuj skrypty inicjowania na woluminach wykazu aparatu Unity, jako plikach obszaru roboczego lub w magazynie obiektów w chmurze.

Użytkownicy, którzy muszą migrować skrypty inicjowania z systemu plików DBFS, mogą korzystać z poniższych przewodników. Upewnij się, że zidentyfikowano prawidłowy element docelowy konfiguracji. Zobacz Rekomendacje, aby zapoznać się ze skryptami inicjowania.