Databricks Container Services pro standardní výpočetní kapacitu

Important

Služba Databricks Container Services pro standardní výpočetní prostředky je v beta verzi. Správce pracovního prostoru musí tuto funkci povolit ze stránky náhledů pracovního prostoru. Jedná se o samostatnou službu odlišnou od Databricks Container Services pro vyhrazené výpočetní prostředí, která je obecně dostupná.

Služba Databricks Container Services pro standardní výpočetní prostředky umožňuje při vytváření standardních výpočetních prostředků zadat image Dockeru, která poskytuje přístup k vlastním kontejnerům ve sdílených výpočetních prostředích. Vaše image Dockeru je jedinou definicí prostředí úloh, takže vzdálené prostředí můžete reprodukovat místně pro konzistentní výsledky napříč vývojem a produkčním prostředím.

Kromě toho vám Azure Databricks pomůže vytvořit vlastní image, která odpovídá bezserverové verze prostředí které můžete rozšířit tak, aby vyhovovaly vašim potřebám.

Requirements

Pokud chcete použít službu Databricks Container Services pro standardní výpočetní prostředí:

  • Výpočetní prostředek musí používat Databricks Runtime 18 nebo novější a používat standardní režim přístupu .
  • Musíte mít nedávný démon Dockeru s příkazem docker dostupným na vašem PATHpočítači .

Note

Pro Databricks Runtime 18 vyberte 18. Nevybírejte 18.0. Možnost modulu runtime 18 bude v nadcházející aktualizaci přejmenována na 18 LTS.

Krok 1: Povolení služby Databricks Container Services pro standardní výpočetní prostředky

Pokud chcete službu Databricks Container Services používat pro standardní výpočetní prostředky, musí správce pracovního prostoru tuto funkci povolit na stránce Previews :

  1. Přihlaste se k pracovnímu prostoru Azure Databricks jako správce.
  2. V nabídce uživatele v pravém horním rohu klikněte na Náhledy.
  3. Vyhledejte DCS pro standardní výpočetní prostředky a zapněte ho.

Krok 2: Sestavení vlastní image

Tyto pokyny ukazují, jak vytvořit vlastní image rozšířením základní image poskytnuté službou Databricks (doporučeno). Základní image obsahuje závislosti potřebné ke spuštění úloh, jako je Ubuntu, Python a sada JDK. Můžete stáhnout databricksruntime/environment:v5-standard, navrstvit na něj své balíčky a využívat průběžné aktualizace a bezpečnostní opravy spravované službou Databricks.

Pokud chcete vytvořit minimální základní image od nuly, přečtěte si referenční informace: Sestavení minimální základní image od nuly.

Krok 2a: Stáhněte základní obraz

Chcete-li stáhnout základní obraz, spusťte:

docker pull databricksruntime/environment:v5-standard

Krok 2b: Zápis souboru Dockerfile, který rozšiřuje základní image

Nainstalujte vlastní balíčky Pythonu do virtuálního prostředí základní image /databricks/python3. Toto je systémové virtuální prostředí, které spouští vaše úlohy.

FROM databricksruntime/environment:v5-standard

RUN /databricks/python3/bin/python -m pip install <your python package>

Následující příklad ukazuje, jak nainstalovat balíček z privátního úložiště.

FROM databricksruntime/environment:v5-standard

ENV PIP_INDEX_URL=https://pypi.org/simple

RUN /databricks/python3/bin/python -m pip install --no-cache-dir simplejson

Můžete použít jakoukoli standardní instrukci souboru Dockerfile (například RUN, ENV, WORKDIR, COPY). Následující pokyny se ignorují kvůli tomu, jak Azure Databricks spouští vaši úlohu:

  • USER
  • CMD
  • ENTRYPOINT
  • EXPOSE
  • HEALTHCHECK
  • SHELL
  • STOPSIGNAL

Note

Pro úlohy Scala zkopírujte soubory JAR do /scala-jars/user adresáře v imagi a chmod 0644 ty, aby si je uživatel sandboxu mohl přečíst. Azure Databricks načítá soubory JAR z této cesty do classpathu Scala REPL a classpathů Scala UDF.

Krok 2c: Vytvoření bitové kopie

Pokud chcete sestavit image, spusťte:

docker build -f <your-dockerfile> -t <registry-url>/<project>[/<repo>]:<tag> .

Výstraha

Svou vlastní image důkladně otestujte v prostředí Azure Databricks. Image, která funguje na místním počítači nebo počítači pro sestavení, se po spuštění v Azure Databricks nemusí spustit, může bez upozornění deaktivovat některé funkce nebo může přestat fungovat.

Referenční informace: Vytvoření minimální základní image od nuly

Pokud potřebujete úplnou kontrolu nad obsahem základní image (například pro splnění striktních požadavků na velikost obrázku, dodavatelského řetězce nebo dodržování předpisů), můžete místo jeho rozšíření vytvořit minimální ekvivalent databricksruntime/environment:v5-standard od nuly.

Výstraha

Vytvoření od nuly je pokročilá volba. Zodpovídáte za sledování upstreamových změn image v5-standard, včetně Python špendlíků, oprav zabezpečení, nástrojů platformy a souborů požadovaných pro platformu v /databricks/ a /etc/environment. Místo toho Databricks doporučuje rozšíření databricksruntime/environment:v5-standard , jak je znázorněno výše v kroku 2.

Databricks poskytuje referenční soubor Dockerfile a requirements.txt, které reprodukují základní prostředí Pythonu v v5-standard. Před sestavením stáhněte oba soubory do stejného adresáře:

Pokud chcete sestavit image, spusťte:

docker build -t <your-registry>/<repo>:<tag> .

Pokud se váš hostitel sestavení nemůže spojit https://pypi.org, přepište index pip v době sestavení spuštěním následujícího příkazu:

docker build --build-arg PIP_INDEX_URL=https://your-mirror/simple -t <your-registry>/<repo>:<tag> .

Než budete pokračovat k dalšímu kroku, ověřte, že kurátorované Python balíčky importují čistě spuštěním následujícího příkazu:

docker run --rm --cpus 2 <your-registry>/<repo>:<tag> \
  /databricks/python3/bin/python -c \
  "import pandas, numpy, pyarrow, mlflow, databricks.connect; print('OK')"

Krok 3: Nahrajte svůj obraz do registru

Dále nasdílejte image do registru Dockeru. Služba Databricks Container Services podporuje stejné registry na standardních i vyhrazených výpočetních prostředcích:

Jiné registry, které nepodporují žádné ověřování nebo základní ověřování, by také měly fungovat. Základní ověřování používá uživatelské jméno a heslo registru.

Pro co nejlepší výkon při stahování imagí použijte registr imagí ve stejném cloudu a stejné oblasti jako váš pracovní prostor služby Azure Databricks.

echo "$REGISTRY_PASSWORD" | docker login -u <registry-username> --password-stdin <registry-url>
docker push <registry-url>/<project>[/<repo>]:<tag>

Note

Pokud používáte Docker Hub, zkontrolujte, jestli vaše limity rychlosti počítají s výpočetními prostředky, které očekáváte spustit v šestihodinovém období. Podrobnosti najdete v dokumentaci k Dockeru. Pokud je tento limit překročen, žádosti se vrátí 429 Too Many Requests.

Krok 4: Spusťte své výpočetní prostředky

Výpočetní prostředky, které používají vlastní image, můžete spustit pomocí uživatelského rozhraní nebo rozhraní API. Musí být splněny následující požadavky:

  • Režim přístupu k výpočetním prostředkům musí být Standard (v rozhraní API nastavte data_security_mode na DATA_SECURITY_MODE_STANDARD). Pokud je výpočetní prostředí nastavené na režim vyhrazeného přístupu, použije se jiná verze služby Databricks Container Services, která očekává jinou základní image a nespustí se se základní imagí, kterou jste vytvořili.
  • Verze Databricks Runtime musí být 18 nebo vyšší. Pro Databricks Runtime 18 zvolte 18, nikoli 18.0.

Note

Chcete-li spouštět pomocí fondu instancí, musí být fond vytvořen s nastaveným parametrem preloaded_docker_images a hodnota docker_image clusteru se s ním musí shodovat. Než začnete spouštět, přečtěte si téma Použití služby Databricks Container Services s fondem instancí .

Spusťte své výpočetní prostředky pomocí uživatelského rozhraní

  1. Na stránce Vytvořit výpočetní prostředky se ujistěte, že je režim Přístupu nastavený na Standard a modul runtime Databricks je nastavený na hodnotu 18 nebo vyšší. Pokud se zobrazí 18 i 18,0 , vyberte 18.

  2. V části Upřesnitvyberte kartu Docker.

  3. Vyberte Použít vlastní kontejner Dockeru.

  4. Do pole Adresa URL image Dockeru zadejte vlastní image.

    Registry Formát značky
    Docker Hub <organization>/<repository>:<tag> (například: databricksruntime/environment:v5-standard)
    Azure Container Registry <your-registry-name>.azurecr.io/<repository-name>:<tag>
  5. Vyberte typ ověřování. Viz ověřování imagí Dockeru.

Note

Pokud při vytváření výpočetních prostředků nevidíte nastavení Dockeru , nemusí být ve vašem pracovním prostoru povolená služba Databricks Container Services. Správce pracovního prostoru ho musí povolit, aby mohl jakýkoli uživatel zadat image Dockeru. Viz krok 1: Povolení služby Databricks Container Services pro standardní výpočetní prostředky.

Spusťte své výpočetní prostředky pomocí rozhraní API

Níže je uveden příklad volání rozhraní API, které vytvoří standardní výpočetní instanci pomocí vaší vlastní bitové kopie. Ujistěte se, že data_security_mode je nastaveno na DATA_SECURITY_MODE_STANDARD a spark_version je nastaveno na hodnotu Databricks Runtime 18 nebo vyšší. Pro Databricks Runtime 18 použijte 18.x-scala2.13, ne 18.0.x-scala2.13.

databricks clusters create \
--cluster-name <cluster-name> \
--node-type-id Standard_DS3_v2 \
--json '{
  "num_workers": 1,
  "docker_image": {
    "url": "<docker-registry-image-url>",
    "basic_auth": {
      "username": "<docker-registry-username>",
      "password": "<docker-registry-password>"
    }
  },
  "spark_version": "18.x-scala2.13",
  "data_security_mode": "DATA_SECURITY_MODE_STANDARD"
}'

ověřování imagí Dockeru

Požadavky na ověřování závisí na typu image Dockeru. Tajné kódy můžete použít také k ukládání ověřovacích uživatelských jmen a hesel. Viz Použití tajných kódů pro ověřování.

  • U veřejných imagí Dockeru nemusíte obsahovat ověřovací informace. V uživatelském rozhraní nastavte ověřování na Výchozí. Pro volání rozhraní API nezahrnou pole basic_auth.
  • U privátních imagí Dockeru se ověřte pomocí služebního hlavního ID a hesla (nebo příslušných tajemství) jako uživatelského jména a hesla.
  • V případě služby Azure Container Registry se jako uživatelské jméno a heslo ověřte pomocí ID instančního objektu a hesla (nebo příslušných tajných kódů). Informace o vytvoření instančního objektu najdete v dokumentaci k ověřování instančního objektu služby Azure Container Registry.

Použití tajných kódů pro ověřování

Služba Databricks Container Service podporuje ověřování pomocí tajných kódů. Při vytváření výpočetního prostředku v uživatelském rozhraní pomocí pole Ověřování vyberte Uživatelské jméno a hesloa pak místo zadávání uživatelského jména nebo hesla ve formátu prostého textu zadejte tajné kódy pomocí formátu {{secrets/<scope-name>/<dcs-secret>}}. Pokud používáte rozhraní API, zadejte tajné kódy do polí basic_auth.

Informace o vytváření tajných kódů najdete v tématu správa tajných kódů.

Používejte Databricks Container Services s fondem instancí

Pokud chcete používat službu Databricks Container Services s fondem instancí, musíte fond vytvořit pomocí rozhraní API fondů instancí, nikoli uživatelského rozhraní.

Pool musí být vytvořen s předem načtenými obrazy Dockeru. Tímto se předem připraví nečinné instance pomocí vašeho vlastního obrazu, aby se úlohy spouštěly rychleji. V požadavku nastavte pole preloaded_docker_images se stejnými odkazy na bitové kopie a ověřovacími údaji, jaké používáte při přímém spuštění výpočetních prostředků. Toto pole je seznam, takže jeden pool může přednačíst více obrázků.

Fond a jeho připojené výpočetní prostředky musí souhlasit s tím, jestli se Docker používá. Pokud u fondu není nastaveno preloaded_docker_images, nemůžete pro něj spustit výpočetní prostředky Databricks Container Services. Vytvořte nový fond se sadou preloaded_docker_images.

U fondů vytvořených pomocí preloaded_docker_imagesmusí všechny výpočetní prostředky spuštěné ve fondu poskytovat odpovídající hodnotu docker_image v žádosti o vytvoření. V opačném případě vytvoření výpočetní instance selže s chybou 'docker_image' must be provided for cluster created with instance pool: <pool-id>.

Migrace z původní služby Databricks Container Services

Služba Databricks Container Services pro standardní výpočetní prostředky je jiná služba než původní služba Databricks Container Services pro vyhrazené výpočetní prostředky. Tato funkce má následující rozdíly:

  • Úlohy se spouštějí prostřednictvím protokolu Spark Connect .
  • Inicializační skripty neupravují Python prostředí vaší úlohy. Musíte nainstalovat všechny závislosti Pythonu do image Dockeru. Inicializační skripty můžete dál používat pro aplikace, které využívají data ze Sparku, jako jsou Datadog nebo agenti Kafka.

Pokud chcete migrovat z původní služby Databricks Container Services pro vyhrazené výpočetní prostředky, znovu sestavte vlastní image ve službě Databricks Container Services pro standardní výpočetní prostředky a aktualizujte konfiguraci výpočetních prostředků:

  1. Řádek FROM v souboru Dockerfile nahraďte řádkem FROM databricksruntime/environment:v5-standard (nebo v5-standard-arm pro AWS Graviton).
  2. Přeneste instrukce ze souboru Dockerfile do nového základního imagu. Standardní pokyny k souboru Dockerfile se podporují s výjimkami uvedenými v kroku 2: Sestavení vlastní image.
  3. Nainstalujte balíčky Python do /databricks/python3 místo jiného virtualenvu. Úlohy (poznámkové bloky, úlohy kol Python, úlohy skriptů Python) čte z této cesty.
  4. Aktualizujte konfiguraci výpočetních prostředků tak, aby používala standardní režim přístupu a Databricks Runtime 18 nebo novější. Pro Databricks Runtime 18 zvolte 18, nikoli 18.0.
  5. Přesuňte všechny Python nastavení prostředí, které inicializační skript dříve provedl do souboru Dockerfile.

Omezení

Kromě standardních omezení výpočetních prostředků má služba Databricks Container Services pro standardní výpočetní prostředky následující omezení:

  • Knihovny s vymezeným výpočetním oborem se nepodporují.
  • Privátní úložiště balíčků se nepodporují.
  • Databricks Runtime pro Machine Learning se nepodporuje.
  • Chcete-li spustit standardní výpočetní prostředí se službou Databricks Container Services nad fondem instancí, musí být fond vytvořen s nastavenou možností preloaded_docker_images. Viz Použití služby Databricks Container Services s fondem instancí.

Troubleshooting

Pokud se při vytváření výpočetního prostředí na kartě Upřesnit nezobrazuje karta Docker, služba Databricks Container Services není ve vašem pracovním prostoru povolena. Správce pracovního prostoru ho musí v pracovním prostoru povolit, aby mohl kterýkoli uživatel zadat image Dockeru. Viz krok 1: Povolení služby Databricks Container Services pro standardní výpočetní prostředky.