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
Deze functie bevindt zich in de bètaversie.
Met de SSH-tunnel van Databricks hebt u toegang tot uw werkruimte en kunt u workloads interactief 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 de SSH-tunnel wilt gebruiken om verbinding te maken met serverloze of klassieke compute van Databricks, hebt u het volgende nodig:
- Databricks CLI versie 1.5.0 of hoger geïnstalleerd op uw lokale computer en verificatie geconfigureerd. Zie De Databricks CLI installeren of bijwerken.
- Een van de volgende opties:
- Visual Studio Code versie: 1.110.0 (Universeel) of hoger en de Remote - SSH-extensie (1.0.46+) geïnstalleerd.
- Cursorversie: 2.6.11 (Universeel) of hoger.
Als u verbinding wilt maken met serverloze GPU-rekenkracht, moet de AI Runtime-functie zijn ingeschakeld. Zie AI Runtime.
Verbinding maken met klassieke (toegewezen, individuele gebruikers) rekenkracht:
- De compute moet Databricks Runtime 17.0 of hoger uitvoeren. Zie het overzicht van toegewezen rekenkracht.
- Unity Catalog moet zijn ingeschakeld.
- Als er een rekenbeleid bestaat, mag het de uitvoering van taken niet verbieden.
- Wanneer u Databricks Container Services voor toegewezen rekenresources gebruikt, moet
openssh-serverin uw Docker-image zijn geïnstalleerd.
Verbinding maken met serverloze rekencapaciteit
Als u verbinding wilt maken met serverloze berekeningen, voert u de databricks ssh connect opdracht uit vanuit een terminal in uw IDE. Er is geen afzonderlijke installatiestap vereist.
Zie databricks ssh connect voor meer informatie over de opdracht ssh.
databricks ssh connect
Gebruik de --accelerator optie om verbinding te maken met AI Runtime:
databricks ssh connect --accelerator=GPU_1xA10
databricks ssh connect geeft u een interactieve sessie op één knooppunt. Voor langlopende trainingstaken of gedistribueerde training met meerdere knooppunten dient u in plaats daarvan de workload in met de air CLI. Zie AI Runtime CLI.
Nadat u verbinding hebt gemaakt, voltooit u het instellen van uw ontwikkelomgeving. Zie Open projecten.
Als u verbinding wilt maken met serverloze berekeningen en de sessie wilt starten in Visual Studio Code of Cursor, gebruikt u de --ide optie. De CLI opent een IDE-venster dat verwijst naar de map met de basiswerkruimte.
databricks ssh connect --ide=vscode
Verbinding maken met klassieke compute
Als u verbinding wilt maken met klassieke berekeningen, moet u eerst de SSH-verbinding instellen en vervolgens verbinding maken met uw IDE of vanaf de terminal.
De SSH-verbinding instellen
Opmerking
Het instellen van de SSH-verbinding is alleen vereist als u verbinding maakt met klassieke berekeningen.
Stel eerst de SSH-tunnel in met behulp van de opdracht databricks ssh setup . Geef een naam op voor de verbinding, bijvoorbeeld vervangen door <connection-name>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 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
Standaard wordt de opdracht databricks ssh connect geopend in een tijdelijke map. Als u toegang wilt krijgen tot werkruimtebestanden, gaat u vanuit de IDE of terminal naar uw werkruimtemap:
- Kies in Visual Studio Code of Cursor in het Opdrachtpalet (Cmd/Ctrl+Shift+P) Map openen en navigeer naar
/Workspace/Users/<your-username>. - Wijzig uw map vanuit een terminalvenster:
cd /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 de SSH-tunnel, moet de virtuele Databricks-omgeving worden ingesteld. Deze omgeving omvat alle ingebouwde DBR-bibliotheken en compute-geïscopeerde bibliotheken.
Open het opdrachtenpalet (Cmd/Ctrl+Shift+P) en selecteer Python: Interpreter selecteren.
Selecteer de
pythonEnv-xxxvirtuele omgeving in de lijst. Als dit niet wordt weergegeven:Uitvoeren
echo $DATABRICKS_VIRTUAL_ENVvanuit een terminal in de IDE.Voorbeelduitvoer:
/local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/pythonPlak de volledige uitvoer als interpreterpad in de prompt Python: Select Interpreter.
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.
Voer Python-bestanden en .ipynb notebooks uit en debug deze met de standaardextensies voor Python en Jupyter.
Als u Spark wilt gebruiken in een Python-bestand op serverloze compute, initialiseert u een sessie expliciet:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.serverless().profile("DEFAULT").getOrCreate()
Python-afhankelijkheden beheren
Beheer Python-afhankelijkheden globaal op clusterniveau of, met notebooks, beperkt tot afzonderlijke projecten.
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
De SSH-tunnel van Databricks heeft de volgende beperkingen:
- Gedeelde clusters worden niet ondersteund.
- De Databricks-extensie voor Visual Studio Code en de SSH-tunnel zijn nog niet compatibel en mogen 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 afnemen.
- De SSH-tunnel kan niet worden gestart vanuit andere externe omgevingen of Docker-containers.
- Er kunnen prestatie- of verbindingsproblemen optreden wanneer drie of meer Jupyter-notebooks gelijktijdig zijn geopend. Deze beperking wordt in een toekomstige release opgelost.
Verschillen tussen Databricks Notebooks
Er zijn enkele verschillen in notebooks bij het gebruik van de SSH-tunnel:
- 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 naar één cluster worden gemaakt. Zie Beperkingen.
Kan de opdracht code niet vinden
Als u het opdrachtpalet (Error: exec: "code": executable file not found in $PATH) ziet, selecteert u Shell Command: Installeer de opdracht 'code' in PATH en start u de IDE- of terminalsessie opnieuw.
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 Visual Studio Code exemplaar kan geen SSH-configuraties vinden die aan de WSL-zijde zijn gemaakt.
Veelgestelde vragen
Hoe verschilt de SSH-tunnel 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 de SSH-tunnel hebt u toegang tot de werkruimte vanuit uw IDE en kunt u uw volledige ontwikkelomgeving verplaatsen naar de berekening, Python, kernel en alle uitvoeringen worden uitgevoerd op Databricks met volledige toegang tot rekenresources.
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 beheerd door de SSH-tunnel.
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 de SSH-tunnel Private Link?
Ja, maar werkruimtebeheerders moeten URL's van Visual Studio Code en Cursor-extensie-marketplaces toestaan. Uw lokale computer moet ook toegang hebben tot internet.