Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Notitie
Er is ook een bètaversie van Databricks Container Services beschikbaar voor het berekenen van de standaardtoegangsmodus . Zie Databricks Container Services voor standaard berekenen.
Met Databricks Container Services kunt u een Docker-image opgeven wanneer u compute maakt. Enkele voorbeelden van gebruiksvoorbeelden zijn:
- Bibliotheekaanpassing: u hebt volledige controle over de systeembibliotheken die u wilt installeren.
- Gouden containeromgeving: uw Docker-image is een afgeschermde omgeving die nooit zal veranderen.
- Docker CI/CD-integratie: u kunt Azure Databricks integreren met uw Docker CI/CD-pijplijnen.
U kunt ook Docker-images gebruiken om aangepaste deep learning-omgevingen te maken in een rekenomgeving met GPU’s. Zie Databricks Container Services voor GPU-rekenkracht voor meer informatie over het gebruik van GPU-rekenkracht met Databricks Container Services.
Gebruik een init-script om taken uit te voeren telkens wanneer de container wordt gestart.
Vereisten
- Voor uw Azure Databricks-werkruimte moet Databricks Container Services zijn ingeschakeld.
- Op uw computer moet een recente Docker-daemon worden uitgevoerd (een die is getest en werkt met Client/Server versie 18.03.0-ce) en de
dockeropdracht moet beschikbaar zijn op uwPATHcomputer.
Beperkingen
- Databricks Container Services wordt niet ondersteund voor berekeningen met behulp van de standaardtoegangsmodus (voorheen modus voor gedeelde toegang).
- Databricks Runtime voor Machine Learning biedt geen ondersteuning voor Databricks Container Services.
- Als u toegang wilt krijgen tot volumes in Databricks Container Services, voegt u de volgende configuratie toe aan het spark-configuratieveld van het rekenproces :
spark.databricks.unityCatalog.volumes.enabled true. - Als u toegang wilt krijgen tot federatieve Hive-metastores in Databricks Container Services, voegt u de volgende configuratie toe aan het Spark-configuratieveld van de berekening:
spark.databricks.unityCatalog.hms.federation.enabled true -
172.17.0.0/16is het standaard-IP-bereik dat wordt gebruikt door Docker. Vermijd het instellen van resources in dit subnet om verbindingsproblemen vanwege een IP-conflict te voorkomen. - Databricks Container Services biedt geen ondersteuning voor notebookverificatie.
Stap 1: Uw basis bouwen
Databricks raadt u aan om uw Docker-basis te bouwen op basis van een basis die Databricks heeft gebouwd en getest. Het is ook mogelijk om uw Docker-basis helemaal opnieuw te bouwen. In deze sectie worden de twee opties beschreven.
Optie 1. Een basis gebruiken die is gebouwd door Databricks
In dit voorbeeld wordt de 16.4-LTS-tag gebruikt voor een installatiekopie die gericht is op een computer met Databricks Runtime 16.4 LTS.
FROM databricksruntime/standard:16.4-LTS
...
Als u extra Python-bibliotheken wilt opgeven, zoals de nieuwste versie van Pandas en URLlib, gebruikt u de containerspecifieke versie van pip. Neem voor de databricksruntime/standard:16.4-LTS container het volgende op:
RUN /databricks/python3/bin/pip install pandas
RUN /databricks/python3/bin/pip install urllib3
Basisimages worden gehost op Docker Hub op https://hub.docker.com/u/databricksruntime. De Dockerfiles die worden gebruikt om deze bases te genereren, bevinden zich op https://github.com/databricks/containers.
Notitie
Op Docker Hub gehoste images met tags met het achtervoegsel '-LTS' zullen worden gepatcht. Alle andere images zijn voorbeelden en worden niet regelmatig bijgewerkt met patches.
Notitie
De basisimages databricksruntime/standard en databricksruntime/minimal moeten niet worden verward met de niet-verwante omgevingen databricks-standard en databricks-minimal, die zijn opgenomen in de niet langer beschikbare Databricks Runtime met Conda (Beta).
Optie 2. Uw eigen Docker-basis bouwen
U kunt ook uw Docker-basis helemaal zelf bouwen. De Docker-image moet aan de volgende vereisten voldoen:
- JDK 8u191 als Java op het systeem
PATH - Bash
- iproute2 (ubuntu iproute)
- coreutils (ubuntu coreutils)
- procps (ubuntu procps)
- sudo (ubuntu sudo)
- Ubuntu Linux
Om uw eigen image helemaal vanaf nul op te bouwen, moet u de virtuele omgeving aanmaken. U moet ook pakketten meenemen die zijn ingebouwd in Databricks-compute, zoals Python en R. Om aan de slag te gaan, kunt u de juiste basisimage gebruiken:
- Voor R:
databricksruntime/rbase - Voor Python:
databricksruntime/python - Voor de minimale image die door Databricks is gebouwd:
databricksruntime/minimal
U kunt ook verwijzen naar de voorbeeld-Dockerfiles in GitHub.
Notitie
Databricks raadt aan Ubuntu Linux te gebruiken; Het is echter mogelijk om Alpine Linux te gebruiken. Als u Alpine Linux wilt gebruiken, moet u deze bestanden opnemen:
Bovendien moet u Python instellen, zoals wordt weergegeven in dit voorbeeld Dockerfile.
Waarschuwing
Test uw aangepaste containerimage grondig in een Azure Databricks-rekenomgeving. Uw container werkt mogelijk op een lokale of buildcomputer, maar wanneer uw container wordt gestart in Azure Databricks, kan het starten van de rekenkracht mislukken, kunnen bepaalde functies worden uitgeschakeld of werkt uw container mogelijk niet meer, zelfs op de achtergrond. In het slechtste geval kunnen uw gegevens beschadigd raken of per ongeluk uw gegevens beschikbaar maken voor externe partijen.
Stap 2: Push uw basisimage
Upload je aangepaste basisimage naar een Docker-register. Dit proces wordt ondersteund met behulp van de volgende registers:
- Docker Hub zonder verificatie of basisverificatie.
- Azure Container Registry met basisverificatie.
Andere Docker-registers die geen verificatie of basisverificatie ondersteunen, zullen naar verwachting ook werken.
Notitie
Als u Docker Hub gebruikt voor uw Docker-register, controleert u of de frequentielimieten geschikt zijn voor de hoeveelheid rekenkracht die u in een periode van zes uur verwacht te starten. Deze frequentielimieten verschillen voor anonieme gebruikers, geverifieerde gebruikers zonder betaald abonnement en betaalde abonnementen. Raadpleeg de Docker-documentatie voor meer informatie. Als deze limiet wordt overschreden, krijgt u het antwoord '429 Te veel aanvragen'.
Stap 3: Uw rekenproces starten
U kunt uw rekenproces starten met behulp van de gebruikersinterface of de API.
Uw rekenproces starten met behulp van de gebruikersinterface
Geef op de pagina Compute maken een Databricks Runtime-versie op die Databricks Container Services ondersteunt.
Selecteer onder Geavanceerdehet tabblad Docker.
Selecteer Uw eigen Docker-container gebruiken.
Voer uw aangepaste Docker-image in het veld Docker Image URL in.
Voorbeelden van Docker-image-URL's:
Register Tagindeling Docker Hub <organization>/<repository>:<tag>(bijvoorbeeld:databricksruntime/standard:latest)Azure Container Registratiedienst <your-registry-name>.azurecr.io/<repository-name>:<tag>Het verificatietype selecteren. U kunt geheimen gebruiken om waarden voor gebruikersnaam en wachtwoordverificatie op te slaan. Zie Verificatie van Docker-installatiekopieën.
Uw rekenproces starten met behulp van de API
Gebruik de Databricks CLI om een rekenproces te starten met uw aangepaste Docker-basis.
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" }'
Authenticatie van Docker-images
Authenticatievereisten zijn afhankelijk van je Docker-image type. U kunt ook geheimen gebruiken om gebruikersnamen en wachtwoorden voor verificatie op te slaan. Zie Geheimen gebruiken voor verificatie.
- Voor openbare Docker-installatiekopieën hoeft u geen verificatiegegevens op te nemen. Stel in de gebruikersinterface verificatie- in op standaard-. Voor de API-aanroep, opnemen.
- Voor private Docker-afbeeldingen moet u authenticeren met behulp van een service-principal-ID en wachtwoord (of toepasselijke geheimen) als gebruikersnaam en wachtwoord.
- Authenticeer voor Azure Container Registry met behulp van een service-principal-ID en wachtwoord (of toepasselijke geheimen) als de gebruikersnaam en het wachtwoord. Raadpleeg de documentatie over service-principalverificatie voor Azure Container Registry voor informatie over het aanmaken van de service-principal.
Geheimen gebruiken voor verificatie
Databricks Container Service biedt ondersteuning voor het gebruik van geheimen voor verificatie. Wanneer u uw rekenresource maakt in de gebruikersinterface, gebruikt u het veld Verificatie om gebruikersnaam en wachtwoordte selecteren, en voert u in plaats daarvan uw geheimen in met behulp van het {{secrets/<scope-name>/<dcs-secret>}}-formaat, in plaats van uw gebruikersnaam of wachtwoord in platte tekst. Als u de API gebruikt, voert u de geheimen in de basic_auth velden in.
Zie Geheime beheervoor meer informatie over het maken van geheimen.
Een init-script gebruiken
Met Databricks Container Services kunnen klanten init-scripts opnemen in de Docker-container. In de meeste gevallen moet u init-scripts vermijden en in plaats daarvan rechtstreeks aanpassingen maken via Docker (met behulp van het Dockerfile). Bepaalde taken moeten echter worden uitgevoerd wanneer de container wordt gestart, in plaats van wanneer de container wordt gebouwd. Gebruik een init-script voor deze taken.
Stel dat u een beveiligingsdaemon in een aangepaste container wilt uitvoeren. Installeer en bouw de daemon in de Docker-image via uw pipeline voor het bouwen van images. Voeg vervolgens een init-script toe waarmee de daemon wordt gestart. In dit voorbeeld bevat het init-script een regel zoals systemctl start my-daemon.
In de API kunt u init-scripts als volgt opgeven als onderdeel van de rekenspecificatie. Zie de Clusters-API voor meer informatie.
"init_scripts": [
{
"file": {
"destination": "file:/my/local/file.sh"
}
}
]
Voor Databricks Container Services-installatiekopieën kunt u ook init-scripts opslaan in cloudopslag.
De volgende stappen worden uitgevoerd wanneer u een berekening start die gebruikmaakt van Databricks Container Services:
- VM's worden verkregen van de cloudprovider.
- De aangepaste Docker-image wordt gedownload vanuit uw repository.
- Azure Databricks maakt een Docker-container van de image.
- Databricks Runtime-code wordt gekopieerd naar de Docker-container.
- De init-scripts worden uitgevoerd. Zie Wat zijn init-scripts?
Azure Databricks negeert de Docker CMD en ENTRYPOINT primitieven.
Container Services inschakelen
Een werkruimtebeheerder kan bepalen of Databricks Container Services is ingeschakeld voor de werkruimte.
Werkruimtebeheerders kunnen het inschakelen van Databricks Container Service in-/uitschakelen met behulp van de Databricks CLI. In de hoofdtekst van een JSON-aanvraag geeft u enableDcs tot true op, zoals in het volgende voorbeeld:
databricks workspace-conf set-status \
--json '{"enableDcs": "true"}'