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.
Belangrijk
Externe ontwikkeling bevindt zich in de bètaversie.
Met Databricks Remote Development hebt u toegang tot uw werkruimte en kunt u interactief workloads uitvoeren op Databricks-compute van IDE's met behulp van een SSH-tunnel. Het is eenvoudig in te stellen, elimineert de noodzaak van omgevingsbeheer en houdt alle code en gegevens veilig binnen uw Databricks-werkruimte.
Requirements
Als u Externe ontwikkelingstools wilt gebruiken, moet u de volgende zaken hebben:
- Databricks CLI versie 0.269 of hoger geïnstalleerd op uw lokale computer en verificatie geconfigureerd. Zie Installeren.
- Een toegewezen cluster (één gebruiker) met Databricks Runtime 17.0 of hoger. Zie het overzicht van toegewezen rekenkracht. Aanvullend:
- Unity Catalog moet zijn ingeschakeld.
- Als er een rekenbeleid bestaat, mag het de uitvoering van taken niet verbieden.
De SSH-verbinding instellen
Stel eerst de SSH-tunnel in met behulp van de opdracht databricks ssh setup . Vervang <connection-name> door de naam van de verbinding, bijvoorbeeld my-connection.
databricks ssh setup --name <connection-name>
De CLI vraagt u om een cluster te selecteren. U kunt er ook rechtstreeks een opgeven met --cluster <cluster-id>:
databricks ssh setup --name <connection-name> --cluster <cluster-id>
Opmerking
Voor IntelliJ-gebruikers raadt Databricks aan om --auto-start-cluster=false toe te voegen aan de installatieopdracht en het cluster handmatig te starten voordat u verbinding maakt. Dit komt doordat JetBrains IDE's alle geconfigureerde clusters starten bij het starten, wat kan leiden tot onverwachte rekenkosten.
Verbinding maken met Databricks
Maak vervolgens verbinding met Databricks met behulp van een IDE of terminal.
Verbinding maken met Visual Studio Code of Cursor
Installeer voor Visual Studio Code de externe SSH-extensie. Cursor bevat standaard een externe SSH-extensie.
Klik in het hoofdmenu van IDE opOpdrachtpalet>. Selecteer Remote-SSH: Instellingen. U kunt ook Voorkeuren selecteren: Gebruikersinstellingen (JSON) openen om rechtstreeks te wijzigen
settings.json.Onder Remote.SSH: Standaardextensies (of
remote.SSH.defaultExtensionsinsettings.json), voegms-Python.Pythonenms-toolsai.jupytertoe.Als u het volgende wijzigt
settings.json:"remote.SSH.defaultExtensions": [ "ms-Python.Python", "ms-toolsai.jupyter" ]Opmerking
Verhoog eventueel de waarde van Remote.SSH: Connect Timeout (of
remote.SSH.connectTimeoutinsettings.json) om de kans op time-outfouten verder te verminderen. De standaardtime-out is 360.Selecteer in het opdrachtpalet de optie Remote-SSH: Verbinding maken met host.
Selecteer in de vervolgkeuzelijst de verbinding die u in de eerste stap hebt ingesteld. De IDE gaat verbinding maken in een nieuw venster.
Verbinding maken met intelliJ IDE's
- Volg de zelfstudie over de externe server om de installatie uit te voeren.
- Voer in het nieuwe verbindingsscherm het volgende in:
-
Gebruikersnaam:
root -
Host:
<connection-name>
-
Gebruikersnaam:
Verbinding maken met behulp van terminal
ssh <connection-name>
Open projecten
Nadat u verbinding hebt gemaakt, gebruikt u Open Folder vanuit het opdrachtpalet en navigeert u naar /Workspace/Users/<your-username>.
Opmerking
Bestanden in /Workspace, /Volumesen /dbfs blijven behouden tijdens het opnieuw opstarten van het cluster. Bestanden in /home, /rooten andere lokale paden zijn kortstondig en verloren bij opnieuw opstarten.
Run-code (Visual Studio Code of Cursor)
Als u code wilt uitvoeren met behulp van Externe ontwikkeling, moet u ervoor zorgen dat de virtuele Databricks-omgeving is ingesteld. Deze omgeving omvat alle ingebouwde DBR-bibliotheken en compute-geïscopeerde bibliotheken.
Uitvoeren
echo $DATABRICKS_VIRTUAL_ENVvanuit een terminal in de IDE.Voorbeelduitvoer:
/local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/pythonOpen de Command Palette en kies Python: Select Interpreter. Plak de bovenstaande uitvoer.
Open een nieuwe terminal en de virtuele omgeving moet automatisch worden geactiveerd.
Als u een Jupyter-notebook wilt uitvoeren, moet u ervoor zorgen dat de virtuele omgeving is geselecteerd als de kernel. Klik op Kernel selecteren in de rechterbovenhoek van het notitieblok.
Python-bestanden en .ipynb notebooks kunnen worden uitgevoerd en gedebugd met behulp van de standaard Python- en Jupyter-extensies.
Python-afhankelijkheden beheren
Python afhankelijkheden kunnen globaal worden beheerd op clusterniveau of gespecificeerd voor afzonderlijke projecten met behulp van notebooks.
Clusterbibliotheken (aanbevolen)
Installeer afhankelijkheden via de gebruikersinterface van de werkruimte onder Compute-bibliotheken>. Deze blijven behouden tijdens het opnieuw opstarten van het cluster en zijn beschikbaar in pythonEnv-xxx. Zie Clusterbibliotheken.
Project-specifieke notebookinstelling
Voer voor projectafhankelijkheden een notebook met %pip install opdrachten uit aan het begin van elke sessie:
# Install from pyproject.toml
%pip install .
# Install from a requirements file
%pip install -r requirements.txt
# Install a wheel from Volumes or Workspace
%pip install /Volumes/catalog/schema/volume/your_library.whl
%pip opdrachten bevatten Databricks-specifieke kaders en propageren afhankelijkheden naar Spark-uitvoerknooppunten. Dit maakt door de gebruiker gedefinieerde functies (UDF's) mogelijk met aangepaste afhankelijkheden.
Zie Bibliotheken beheren met %pip opdrachten voor meer voorbeelden.
U hoeft het notebook niet opnieuw uit te voeren als de sessie binnen tien minuten opnieuw verbinding maakt. Dit kan worden geconfigureerd in uw SSH-configuratie met -shutdown-delay.
Opmerking
Meerdere SSH-sessies in hetzelfde cluster delen één virtuele omgeving.
Beperkingen
Databricks Remote Development heeft de volgende beperkingen:
- Gedeelde clusters met meerdere gebruikers en serverloos worden nog niet ondersteund.
- De Databricks-extensie voor Visual Studio Code en Externe ontwikkeling is nog niet compatibel en mag niet samen worden gebruikt.
- Bestanden die buiten
/Workspace,/Volumesen/dbfszijn bewerkt, gaan verloren bij het opnieuw opstarten van het cluster. - Er zijn maximaal 10 SSH-verbindingen per cluster toegestaan.
- Inactieve sessies kunnen na 1 uur worden beëindigd.
Verschillen tussen Databricks Notebooks
Er zijn enkele verschillen in notebooks bij het gebruik van Remote Ontwikkeling.
- Python-bestanden definiëren geen globals van Databricks (zoals
sparkofdbutils). U moet ze expliciet importeren metfrom databricks.sdk.runtime import spark. - Voor ipynb-notebooks zijn deze functies beschikbaar:
- Databricks globals:
display,displayHTML,dbutils,table,sql,udf,getArgument,sc,sqlContext,spark -
%sqlmagic-opdracht om SQL-cellen uit te voeren
- Databricks globals:
Werken met Python-bron 'notebooks':
Zoek naar
jupyter.interactiveWindow.cellMarker.codeRegexen stel dit in op:^# COMMAND ----------|^# Databricks notebook source|^(#\\s*%%|#\\s*\\<codecell\\>|#\\s*In\\[\\d*?\\]|#\\s*In\\[ \\])Zoek naar
jupyter.interactiveWindow.cellMarker.defaulten stel dit in op:# COMMAND ----------
Probleemoplossingsproces
Deze sectie bevat informatie over het oplossen van veelvoorkomende problemen.
SSH-verbinding mislukt of er treedt een time-out op
- Controleer of het cluster draait in de UI van de werkruimte.
- Controleer of uitgaande poort 22 is geopend en toegestaan op uw laptop, netwerk en VPN.
- Verhoog de SSH-time-out. Zie Verbinding maken met Visual Studio Code of Cursor.
- Voor sleutelafstemmingsfouten, verwijder
~/.databricks/ssh-tunnel-keysen voerdatabricks ssh setupopnieuw uit. - Controleer bij fouten met de melding 'verandering van externe hostidentificatie' het
~/.ssh/known_hosts-bestand en verwijder vermeldingen die betrekking hebben op uw cluster. - SSH-sessies kunnen na 1 uur afnemen en er kunnen maximaal 10 SSH-verbindingen worden gemaakt met één cluster. Zie Beperkingen.
CLI-verificatiefouten
- Controleer of uw Databricks CLI-profiel geldig is met behulp van
databricks auth login. - Controleer of u machtigingen hebt
CAN MANAGEvoor het cluster.
Mijn code werkt niet
- Zorg ervoor dat u de virtuele Databricks-omgeving hebt ingesteld. Zie Code uitvoeren (Visual Studio Code of Cursor)
- IPYNB-notebooks en
*.pyDatabricks-notebooks hebben toegang tot databricks globals, maar Python-bestanden*.pyniet. Zie de verschillen in Databricks Notebooks.
Bestanden verdwijnen of de omgeving wordt opnieuw ingesteld nadat het cluster opnieuw is opgestart
- Bestanden in
/Workspace,/Volumesen/dbfsmounts blijven behouden tijdens het opnieuw opstarten van het cluster. Bestanden in/home,/rooten andere lokale paden zijn kortstondig en verloren bij opnieuw opstarten. - Gebruik clusterbibliotheekbeheer voor permanente afhankelijkheden. Automatiseer indien nodig opnieuw installeren met behulp van init-scripts. Zie Wat zijn init-scripts?
SSH-installatie mislukt op Windows (WSL)
Voer databricks ssh setup rechtstreeks uit op Windows, niet in WSL. Het Windows VS Code-exemplaar kan geen SSH-configuraties vinden die aan de WSL-zijde zijn gemaakt.
Veelgestelde vragen
Hoe verschilt Externe ontwikkeling van Databricks Connect?
Met Databricks Connect kunt u code schrijven met behulp van Spark-API's en deze op afstand uitvoeren op Databricks Compute in plaats van in de lokale Spark-sessie. De Databricks Visual Studio Code-extensie maakt gebruik van Databricks Connect om ingebouwde foutopsporing van gebruikerscode op Databricks te bieden.
Met Externe ontwikkeling kunt u toegang krijgen tot de werkruimte vanuit uw IDE en uw volledige ontwikkelomgeving naar het cluster verplaatsen: Python, kernel en alle uitvoeringen worden uitgevoerd op Databricks met volledige toegang tot clusterbronnen.
Hoe worden mijn code en gegevens beveiligd?
Alle code wordt uitgevoerd binnen uw Databricks-cloud-VPC. Er blijven geen gegevens of code achter in uw beveiligde omgeving. SSH-verkeer is volledig versleuteld.
Welke IDE's worden ondersteund?
Visual Studio Code en Cursor worden officieel ondersteund. Elke IDE met SSH-mogelijkheden is compatibel, maar alleen VS Code en Cursor worden getest.
Zijn alle Databricks-notebookfuncties beschikbaar via de IDE?
Sommige functies, zoals display(), dbutilsen %sql zijn beschikbaar met beperkingen of handmatige installatie. Zie de verschillen in Databricks Notebooks.
Wordt mijn cluster automatisch gestart wanneer ik verbinding maak met behulp van de SSH-tunnel?
Ja, maar als het langer duurt om het cluster te starten dan de time-out voor de verbinding, mislukt de verbindingspoging. Om dit te voorkomen, verhoogt u de waarde van Remote.SSH: Connect Timeout vanuit het opdrachtpalet (of remote.SSH.connectTimeout in settings.json) om de kans op time-outfouten verder te verminderen.
Hoe weet ik of mijn cluster draait?
Navigeer naar Compute in de gebruikersinterface van de Databricks-werkruimte en controleer de status van het cluster. Het cluster moet Running weergeven voordat de SSH-verbinding werkt.
Hoe verbreek ik de verbinding met mijn SSH/IDE-sessie?
U kunt een sessie verbreken door het IDE-venster te sluiten met behulp van de optie Verbinding verbreken in uw IDE, uw SSH-terminal te sluiten of de exit opdracht uit te voeren in de terminal.
Hoe stop ik het cluster en vermijd ik kosten wanneer ik niet werk?
Als u het cluster onmiddellijk wilt stoppen, beëindigt u het cluster vanuit de gebruikersinterface van de werkruimte. Navigeer naar Compute in de gebruikersinterface van de Databricks-werkruimte, zoek uw cluster en klik op Beëindigen of Stoppen.
Stel een kort beleid voor automatische beëindiging in op uw cluster vanuit de gebruikersinterface van de werkruimte. Nadat u de verbinding hebt verbroken, wacht de SSH-server op de shutdown-delay periode (standaard: 10 minuten), waarna de time-out voor inactiviteit van het cluster van toepassing is.
Hoe kan ik permanente afhankelijkheden verwerken?
Afhankelijkheden die tijdens een sessie zijn geïnstalleerd, gaan verloren nadat het cluster opnieuw is opgestart. Gebruik permanente opslag (/Workspace/Users/<your-username>) voor vereisten en installatiescripts. Gebruik clusterbibliotheken of init-scripts voor automatisering.
Welke verificatiemethoden worden ondersteund?
Verificatie maakt gebruik van de Databricks CLI en uw ~/.databrickscfg profielbestand. SSH-sleutels worden verwerkt door Databrick Remote Development.
Kan ik verbinding maken met externe databases of services vanuit het cluster?
Ja, zolang uw clusternetwerken uitgaande verbindingen toestaat en u over de benodigde bibliotheken beschikt.
Kan ik extra IDE-extensies gebruiken?
De meeste extensies werken wanneer ze zijn geïnstalleerd in uw externe SSH-sessie, afhankelijk van uw IDE en cluster. Visual Studio Code installeert standaard geen lokale extensies op externe hosts. U kunt ze handmatig installeren door het deelvenster extensies te openen en uw lokale extensies in te schakelen op de externe host. U kunt Visual Studio Code ook zo configureren dat bepaalde extensies altijd extern worden geïnstalleerd. Zie Verbinding maken met Databricks.
Ondersteunt Remote Development Private Link?
Ja, maar werkruimtebeheerders moeten URL's van VS Code- en Cursor-extensie-marketplaces toestaan. De lokale machines van gebruikers moeten ook toegang hebben tot internet.