Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa Databricks Container Services umożliwia określenie obrazu platformy Docker podczas tworzenia obliczeń. Oto przykładowe przypadki użycia:
- Dostosowywanie biblioteki: masz pełną kontrolę nad bibliotekami systemowym, które chcesz zainstalować.
- Złote środowisko kontenera: obraz platformy Docker to zablokowane środowisko, które nigdy się nie zmieni.
- Integracja ciągłej integracji/ciągłego wdrażania platformy Docker: możesz zintegrować usługę Azure Databricks z potokami ciągłej integracji/ciągłego wdrażania platformy Docker.
Za pomocą obrazów platformy Docker można również tworzyć niestandardowe środowiska uczenia głębokiego na obliczeniach przy użyciu urządzeń z procesorem GPU. Aby uzyskać dodatkowe informacje na temat używania obliczeń procesora GPU z usługami Kontener Services usługi Databricks, zobacz Databricks Container Services on GPU compute (Usługi kontenerów usługi Databricks w obliczeniach procesora GPU).
Aby zadania, które mają być wykonywane przy każdym uruchomieniu kontenera, użyj skryptu init.
Wymagania
- Obszar roboczy usługi Azure Databricks musi mieć włączoną usługę Kontener Services usługi Databricks.
- Na komputerze musi być uruchomiony ostatni demon platformy Docker (testowany i współdziałający z klientem/serwerem w wersji 18.03.0-ce), a
dockerpolecenie musi być dostępne w plikuPATH.
Ograniczenia
- Usługi kontenerowe Databricks nie są obsługiwane w przypadku obliczeń przy użyciu standardowego trybu dostępu (dawniej trybu dostępu współdzielonego).
- Środowisko Databricks Runtime dla uczenia maszynowego nie obsługuje usług Kontener Services usługi Databricks.
- Aby uzyskać dostęp do woluminów w Databricks Container Services, dodaj następującą konfigurację do pola konfiguracji Spark w ustawieniach obliczeniowych:
spark.databricks.unityCatalog.volumes.enabled true. - Aby uzyskać dostęp do federowanych metadanych Hive w Usługach Kontenerowych Databricks, dodaj następującą konfigurację do pola konfiguracji Spark obliczeń:
spark.databricks.unityCatalog.hms.federation.enabled true. -
172.17.0.0/16to domyślny zakres adresów IP używany przez platformę Docker. Aby zapobiec problemom z łącznością z powodu konfliktu adresów IP, unikaj konfigurowania zasobów w tej podsieci. - Usługa Databricks Container Services nie obsługuje uwierzytelniania notebooków.
Krok 1. Tworzenie bazy
Usługa Databricks zaleca utworzenie bazy platformy Docker na podstawie bazy, którą usługa Databricks skompilowała i przetestowała. Istnieje również możliwość skompilowania bazy platformy Docker od podstaw. W tej sekcji opisano dwie opcje.
Sposób 1. Używanie bazy utworzonej przez usługę Databricks
W tym przykładzie użyto tagu 16.4-LTS dla obrazu, który będzie przeznaczony dla obliczeń za pomocą środowiska Databricks Runtime 16.4 LTS:
FROM databricksruntime/standard:16.4-LTS
...
Aby określić dodatkowe biblioteki języka Python, takie jak najnowsza wersja biblioteki pandas i urllib, użyj wersji specyficznej dla kontenera .pip W przypadku kontenera databricksruntime/standard:16.4-LTS uwzględnij następujące elementy:
RUN /databricks/python3/bin/pip install pandas
RUN /databricks/python3/bin/pip install urllib3
Obrazy podstawowe są hostowane w usłudze Docker Hub pod adresem https://hub.docker.com/u/databricksruntime. Pliki Dockerfile używane do generowania tych baz znajdują się w https://github.com/databricks/containers.
Uwaga
Obrazy hostowane w usłudze Docker Hub z sufiksem "-LTS" zostaną poprawione. Wszystkie inne obrazy są przykładami i nie są regularnie poprawiane.
Uwaga
Obrazy databricksruntime/standard podstawowe i databricksruntime/minimal nie należy ich mylić z niepowiązanymi databricks-standard środowiskami i databricks-minimal nie są już dostępne w środowisku Databricks Runtime z conda (beta).
Sposób 2. Tworzenie własnej bazy platformy Docker
Możesz również utworzyć bazę platformy Docker od podstaw. Obraz platformy Docker musi spełniać następujące wymagania:
- Zestaw JDK 8u191 jako java w systemie
PATH - Bash
- iproute2 (ubuntu iproute)
- coreutils (ubuntu coreutils)
- procps (ubuntu procps)
- sudo (ubuntu sudo)
- Ubuntu Linux
Aby utworzyć własny obraz od podstaw, musisz utworzyć środowisko wirtualne. Należy również uwzględnić pakiety wbudowane w obliczenia usługi Databricks, takie jak Python i R. Aby rozpocząć, możesz użyć odpowiedniego obrazu podstawowego:
- W przypadku języka R:
databricksruntime/rbase - W przypadku języka Python:
databricksruntime/python - Minimalny obraz utworzony przez usługę Databricks:
databricksruntime/minimal
Możesz również odwołać się do przykładowych plików Dockerfile w usłudze GitHub.
Uwaga
Usługa Databricks zaleca korzystanie z systemu Ubuntu Linux; można jednak użyć systemu Alpine Linux. Aby korzystać z systemu Alpine Linux, należy uwzględnić następujące pliki:
Ponadto należy skonfigurować język Python, jak pokazano w tym przykładowym pliku Dockerfile.
Ostrzeżenie
Dokładnie przetestuj niestandardowy obraz kontenera na obliczeniach usługi Azure Databricks. Kontener może działać na komputerze lokalnym lub kompilacji, ale po uruchomieniu kontenera w usłudze Azure Databricks uruchomienie obliczeniowe może zakończyć się niepowodzeniem, niektóre funkcje mogą zostać wyłączone lub kontener może przestać działać, nawet dyskretnie. W najgorszych scenariuszach może to spowodować uszkodzenie danych lub przypadkowe ujawnienie danych stronom zewnętrznym.
Krok 2. Wypychanie obrazu podstawowego
Wypchnij niestandardowy obraz podstawowy do rejestru platformy Docker. Ten proces jest obsługiwany przy użyciu następujących rejestrów:
- Docker Hub bez uwierzytelniania ani podstawowego uwierzytelniania.
- Usługa Azure Container Registry z podstawowym uwierzytelnianiem.
Oczekuje się również, że inne rejestry platformy Docker, które nie obsługują uwierzytelniania ani podstawowego uwierzytelniania.
Uwaga
Jeśli używasz usługi Docker Hub dla rejestru platformy Docker, upewnij się, że limity szybkości są uwzględniane w oczekiwanej ilości zasobów obliczeniowych w okresie sześciu godzin. Te limity szybkości są różne dla użytkowników anonimowych, uwierzytelnionych użytkowników bez płatnej subskrypcji i płatnych subskrypcji. Aby uzyskać szczegółowe informacje, zobacz dokumentację platformy Docker. Jeśli ten limit zostanie przekroczony, otrzymasz odpowiedź "429 Zbyt wiele żądań".
Krok 3. Uruchamianie obliczeń
Środowisko obliczeniowe można uruchomić przy użyciu interfejsu użytkownika lub interfejsu API.
Uruchamianie obliczeń przy użyciu interfejsu użytkownika
Na stronie Tworzenie zasobów obliczeniowych określ wersję środowiska uruchomieniowego usługi Databricks, która obsługuje usługi Kontener Services usługi Databricks.
W obszarze Zaawansowane wybierz kartę Docker .
Wybierz pozycję Użyj własnego kontenera platformy Docker.
W polu Adres URL obrazu platformy Docker wprowadź niestandardowy obraz platformy Docker.
Przykłady adresów URL obrazów platformy Docker:
Rejestr Format tagu Docker Hub <organization>/<repository>:<tag>(na przykład:databricksruntime/standard:latest)Azure Container Registry <your-registry-name>.azurecr.io/<repository-name>:<tag>Wybierz typ uwierzytelniania. Możesz użyć tajemnic do przechowywania wartości uwierzytelniania, takich jak nazwa użytkownika i hasło. Zobacz Uwierzytelnianie obrazów platformy Docker.
Uruchamianie obliczeń przy użyciu interfejsu API
Użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić środowisko obliczeniowe przy użyciu niestandardowej bazy platformy Docker.
databricks clusters create \ --cluster-name <cluster-name> \ --node-type-id Standard_DS3_v2 \ --json '{ "num_workers": 0, "docker_image": { "url": "databricksruntime/standard:latest", "basic_auth": { "username": "<docker-registry-username>", "password": "<docker-registry-password>" } }, "spark_version": "16.4.x-scala2.12" }'
Uwierzytelnianie obrazu Dockera
Wymagania dotyczące uwierzytelniania zależą od typu obrazu platformy Docker. Możesz również używać sekretów do przechowywania nazw użytkowników i haseł do celów uwierzytelniania. Zobacz Używanie wpisów tajnych do uwierzytelniania.
- W przypadku publicznych obrazów platformy Docker nie trzeba dołączać informacji o uwierzytelnianiu. W interfejsie użytkownika ustaw wartość Uwierzytelnianie na Wartość domyślna. W przypadku wywołania interfejsu API nie dołączaj pola
basic_auth. - W przypadku prywatnych obrazów Docker uwierzytelnij się przy użyciu identyfikatora jednostki usługi i hasła (lub odpowiednich wpisów tajnych) jako nazwę użytkownika i hasło.
- W przypadku usługi Azure Container Registry uwierzytelnij się, używając identyfikatora jednostki usługi i hasła (lub odpowiednich tajemnic) jako nazwy użytkownika i hasła. Aby uzyskać informacje na temat tworzenia jednostki usługi, zobacz dokumentację uwierzytelniania jednostki usługi Azure Container Registry.
Używanie wpisów tajnych do uwierzytelniania
Usługa Kontenera usługi Databricks obsługuje używanie wpisów tajnych do uwierzytelniania. Podczas tworzenia zasobu obliczeniowego w interfejsie użytkownika użyj pola Uwierzytelnianie , aby wybrać pozycję Nazwa użytkownika i hasło, a następnie zamiast wprowadzać nazwę użytkownika lub hasło w postaci zwykłego tekstu, wprowadź wpisy tajne przy użyciu {{secrets/<scope-name>/<dcs-secret>}} formatu . Jeśli używasz interfejsu API, wprowadź sekrety w polach basic_auth.
Aby uzyskać informacje na temat tworzenia wpisów tajnych, zobacz Zarządzanie wpisami tajnymi.
Używanie skryptu init
Usługi kontenerów usługi Databricks umożliwiają klientom dołączanie skryptów inicjowania do kontenera platformy Docker. W większości przypadków należy unikać skryptów inicjowania i zamiast tego wprowadzać dostosowania za pośrednictwem platformy Docker bezpośrednio (przy użyciu pliku Dockerfile). Jednak niektóre zadania muszą być wykonywane po uruchomieniu kontenera, a nie podczas kompilowania kontenera. Użyj skryptu inicjowania dla tych zadań.
Załóżmy na przykład, że chcesz uruchomić demona zabezpieczeń wewnątrz niestandardowego kontenera. Zainstaluj i skompiluj demona w obrazie platformy Docker za pomocą potoku tworzenia obrazu. Następnie dodaj skrypt init, który uruchamia demona. W tym przykładzie skrypt inicjowania będzie zawierać wiersz podobny do systemctl start my-daemon.
W interfejsie API można określić skrypty inicjowania w ramach specyfikacji obliczeniowej w następujący sposób. Aby uzyskać więcej informacji, zobacz Interfejs API klastrów.
"init_scripts": [
{
"file": {
"destination": "file:/my/local/file.sh"
}
}
]
W przypadku obrazów usługi Kontener Services usługi Databricks można również przechowywać skrypty inicjowania w magazynie w chmurze.
Podczas uruchamiania środowiska obliczeniowego korzystającego z usług Kontener Services usługi Databricks należy wykonać następujące czynności:
- Maszyny wirtualne są pozyskiwane od dostawcy usług w chmurze.
- Niestandardowy obraz platformy Docker jest pobierany z repozytorium.
- Usługa Azure Databricks tworzy kontener platformy Docker na podstawie obrazu.
- Kod środowiska Uruchomieniowego usługi Databricks jest kopiowany do kontenera platformy Docker.
- Skrypty inicjowania są wykonywane. Zobacz Co to są skrypty init?.
Usługa Azure Databricks ignoruje platformę Docker CMD i ENTRYPOINT elementy pierwotne.
Włączanie usług kontenerów
Aby korzystać z kontenerów niestandardowych w obliczeniach, administrator obszaru roboczego musi włączyć usługi Kontener Services usługi Databricks.
Administratorzy obszaru roboczego mogą włączyć usługę kontenera usługi Databricks przy użyciu interfejsu wiersza polecenia usługi Databricks. W treści żądania JSON określ enableDcs wartość true, jak w poniższym przykładzie:
databricks workspace-conf set-status \
--json '{"enableDcs": "true"}'