Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Dieses Feature befindet sich in der Betaversion.
Der von Databricks bereitgestellte SSH-Tunnel ermöglicht es Ihnen, über einen SSH-Tunnel von IDEs aus auf Ihren Workspace zuzugreifen und Workloads interaktiv auf Databricks-Compute auszuführen. Es ist einfach einzurichten, beseitigt die Notwendigkeit der Umgebungsverwaltung und hält alle Code und Daten in Ihrem Databricks-Arbeitsbereich sicher.
Anforderungen
Um den SSH-Tunnel zu verwenden, um eine Verbindung mit serverlosen oder klassischen Databricks-Rechenressourcen herzustellen, benötigen Sie Folgendes:
- Databricks CLI Version 1.5.0 oder höher, die auf Ihrem lokalen Computer installiert ist, und eine konfigurierte Authentifizierung. Siehe Installieren oder Aktualisieren der Databricks CLI.
- Eines der folgenden:
- Visual Studio Code Version: 1.110.0 (Universell) oder höher und die Remote-SSH-Erweiterung (1.0.46+) installiert.
- Cursorversion: 2.6.11 (Universal) oder höher.
Um eine Verbindung mit serverlosen GPU-Compute herzustellen, muss das KI-Runtime-Feature aktiviert sein. Siehe KI-Runtime.
So stellen Sie eine Verbindung zu klassischen Rechenressourcen (dediziert, für einen einzelnen Benutzer) her:
- Die Berechnung muss Databricks Runtime 17.0 oder höher ausführen. Siehe Dedizierte Berechnungsübersicht.
- Unity-Katalog muss aktiviert sein.
- Wenn eine Richtlinie für Computerressourcen vorhanden ist, darf die Ausführung von Aufträgen nicht verhindert werden.
- Wenn Sie Databricks Container Services für dedizierte Rechenressourcen verwenden, muss
openssh-serverin Ihrem Docker-Image installiert sein.
Herstellen einer Verbindung mit serverlosem Computing
Um eine Verbindung mit serverlosen Compute herzustellen, führen Sie den databricks ssh connect Befehl über ein Terminal in Ihrer IDE aus. Es ist kein separater Setupschritt erforderlich.
Weitere Informationen zum Befehl databricks ssh connect finden Sie unter ssh Befehlsgruppe.
databricks ssh connect
Verwenden Sie die --accelerator Option, um eine Verbindung mit der AI-Runtime herzustellen:
databricks ssh connect --accelerator=GPU_1xA10
databricks ssh connect bietet Ihnen eine interaktive Sitzung auf einem einzelnen Knoten. Für lang andauernde Schulungsaufträge oder verteilte Mehrknotenschulungen übermitteln Sie stattdessen die Arbeitsauslastung mit der air CLI. Siehe AI Runtime CLI.
Nachdem Sie eine Verbindung hergestellt haben, richten Sie die Entwicklungsumgebung ein. Siehe "Projekte öffnen".
Um eine Verbindung mit serverlosem Compute herzustellen und die Sitzung in Visual Studio Code oder Cursor zu starten, verwenden Sie die --ide Option. Die CLI öffnet ein IDE-Fenster, das auf den Ordner "Privatarbeitsbereich" zeigt.
databricks ssh connect --ide=vscode
Verbindung mit klassischer Recheninstanz herstellen
Um eine Verbindung mit der klassischen Compute herzustellen, richten Sie zuerst die SSH-Verbindung ein, und stellen Sie dann eine Verbindung mit Ihrer IDE oder vom Terminal her her.
Einrichten der SSH-Verbindung
Hinweis
Das Einrichten der SSH-Verbindung ist nur erforderlich, wenn Sie eine Verbindung mit der klassischen Compute herstellen.
Richten Sie zunächst den SSH-Tunnel mit dem Befehl "databricks ssh setup " ein. Geben Sie einen Namen für die Verbindung an, z. B. ersetzen Sie <connection-name> durch my-connection:
databricks ssh setup --name <connection-name>
Die CLI fordert Sie auf, einen Cluster auszuwählen. Sie können auch direkt mit --cluster <cluster-id> eine angeben:
databricks ssh setup --name <connection-name> --cluster <cluster-id>
Hinweis
Bei IntelliJ-Benutzern empfiehlt Databricks, dem Setupbefehl hinzuzufügen --auto-start-cluster=false und den Cluster manuell zu starten, bevor eine Verbindung hergestellt wird. Dies liegt daran, dass JetBrains-IDEs alle konfigurierten Cluster beim Start starten, was zu unerwarteten Berechnungsgebühren führen kann.
Herstellen einer Verbindung mit Visual Studio Code oder Cursor
Installieren Sie für Visual Studio Code die Remote-SSH-Erweiterung. Der Cursor enthält standardmäßig eine Remote-SSH-Erweiterung.
Klicken Sie im Hauptmenü der IDE auf Ansicht>Befehlspalette. Wählen Sie Remote-SSH: Einstellungen aus. Wählen Sie alternativ "Einstellungen" aus: Öffnen Sie die Benutzereinstellungen (JSON), um sie direkt zu ändern
settings.json.Fügen Sie unter Remote.SSH: Standarderweiterungen (oder
remote.SSH.defaultExtensionsinsettings.json) hinzums-Python.Pythonundms-toolsai.jupyter.Wenn Sie
settings.jsonändern:"remote.SSH.defaultExtensions": [ "ms-Python.Python", "ms-toolsai.jupyter" ]Hinweis
Erhöhen Sie optional den Wert von Remote.SSH: Connect Timeout (oder
remote.SSH.connectTimeoutinsettings.json), um die Wahrscheinlichkeit von Timeoutfehlern weiter zu verringern. Das Standardtimeout ist 360.Wählen Sie in der Befehlspalette Remote-SSH: Verbindung mit Host herstellen.
Wählen Sie im Dropdownmenü die Verbindung aus, die Sie im ersten Schritt eingerichtet haben. Die IDE fährt mit der Verbindung in einem neuen Fenster fort.
Verbinden mit IntelliJ-IDEs
- Folgen Sie dem Remoteserver-Tutorial, um die Einrichtung vorzunehmen.
- Geben Sie auf dem neuen Verbindungsbildschirm Folgendes ein:
-
Benutzername:
root -
Host:
<connection-name>
-
Benutzername:
Verbinden mit Terminal
ssh <connection-name>
Projekte öffnen
Standardmäßig wird der Befehl databricks ssh connect in einem temporären Verzeichnis geöffnet. Um auf Arbeitsbereichsdateien zuzugreifen, navigieren Sie über die IDE oder das Terminal zu Ihrem Arbeitsbereichsverzeichnis:
- Wählen Sie in Visual Studio Code oder Cursor in der Befehlspalette (Cmd/STRG+UMSCHALT+P) "Ordner öffnen" aus, und navigieren Sie zu
/Workspace/Users/<your-username>. - Ändern Sie in einem Terminalfenster Ihr Verzeichnis:
cd /Workspace/Users/<your-username>.
Hinweis
Dateien in /Workspace, /Volumes, und /dbfs persistieren bei Clusterneustarts. Dateien in /home, /rootund andere lokale Pfade sind kurzlebig und gehen beim Neustart verloren.
Run-Code (Visual Studio Code oder Cursor)
Um Code mithilfe des SSH-Tunnels auszuführen, muss die virtuelle Databricks-Umgebung eingerichtet werden. Diese Umgebung umfasst alle integrierten DBR-Bibliotheken und Compute-Bereichs-Bibliotheken.
Öffnen Sie die Befehlspalette (Cmd/STRG+UMSCHALT+P) und wählen Sie Python: Interpreter auswählen.
Wählen Sie die
pythonEnv-xxxvirtuelle Umgebung aus der Liste aus. Wenn sie nicht angezeigt wird:Führen Sie die Ausführung
echo $DATABRICKS_VIRTUAL_ENVvon einem Terminal innerhalb der IDE aus.Beispielausgabe:
/local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/pythonFügen Sie die vollständige Ausgabe als Interpreterpfad in die Aufforderung Python: Interpreter auswählen ein.
Öffnen Sie ein neues Terminal, und die virtuelle Umgebung sollte automatisch aktiviert werden.
Um ein Jupyter-Notizbuch auszuführen, stellen Sie sicher, dass die virtuelle Umgebung als Kernel ausgewählt ist. Klicken Sie oben rechts im Notizbuch auf "Kernel auswählen ".
Führen Sie Python Dateien und .ipynb Notizbücher mithilfe der standardmäßigen Python- und Jupyter-Erweiterungen aus, und debuggen Sie sie.
Um Spark in einer Python Datei auf serverlosem Compute zu verwenden, initialisieren Sie eine Sitzung explizit:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.serverless().profile("DEFAULT").getOrCreate()
Verwalten von Python-Abhängigkeiten
Verwalten Sie Python-Abhängigkeiten global auf Clusterebene oder mithilfe von Notebooks für einzelne Projekte.
Clusterbibliotheken (empfohlen)
Installieren Sie Abhängigkeiten über die Arbeitsbereichs-UI unter "ComputeBibliotheken>". Diese bleiben auch nach Neustarts des Clusters bestehen und sind in pythonEnv-xxx verfügbar. Siehe Clusterbibliotheken.
Projektspezifische Notizbucheinrichtung
Führen Sie für projektbezogene Abhängigkeiten zu Beginn jeder Sitzung ein Notizbuch mit %pip install Befehlen aus:
# 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 Befehle umfassen Databricks-spezifische Schutzläufe und verteilen Abhängigkeiten an Spark-Executorknoten. Dadurch können benutzerdefinierte Funktionen (USER-Defined Functions, UDFs) mit benutzerdefinierten Abhängigkeiten aktiviert werden.
Weitere Beispiele finden Sie unter Verwalten von Bibliotheken mit %pip Befehlen.
Sie müssen das Notizbuch nicht erneut ausführen, wenn die Sitzung im Laufe von 10 Minuten wieder verbunden wird. Dies ist in Ihrer SSH-Konfiguration mit -shutdown-delay einstellbar.
Hinweis
Mehrere SSH-Sitzungen auf demselben Cluster teilen eine virtuelle Umgebung.
Einschränkungen
Der von Databricks bereitgestellte SSH-Tunnel hat die folgenden Einschränkungen:
- Gemeinsam genutzte Cluster werden nicht unterstützt.
- Die Databricks-Erweiterung für Visual Studio Code und den SSH-Tunnel ist noch nicht kompatibel und sollte nicht zusammen verwendet werden.
- Dateien, die außerhalb
/Workspacebearbeitet wurden,/Volumesund/dbfsgehen beim Clusterneustart verloren. - Pro Cluster sind maximal 10 SSH-Verbindungen zulässig.
- Inaktive Sitzungen können nach 1 Stunde fallen.
- Der SSH-Tunnel kann nicht aus anderen Remoteumgebungen oder Docker-Containern gestartet werden.
- Möglicherweise treten Leistungs- oder Verbindungsprobleme auf, wenn drei oder mehr Jupyter-Notizbücher gleichzeitig geöffnet sind. Diese Einschränkung wird in einer zukünftigen Version behoben.
Unterschiede bei Databricks-Notizbüchern
Beim Verwenden des SSH-Tunnels gibt es einige Unterschiede in Notebooks:
- Python-Dateien definieren keine Databricks-Globalen (wie
sparkoderdbutils). Sie müssen sie explizit mitfrom databricks.sdk.runtime import spark. - Für ipynb-Notizbücher stehen diese Features zur Verfügung:
- Databricks Globals:
display,displayHTML,dbutils,table,sql,udf,getArgument,sc,sqlContext,spark -
%sqlZauberbefehl zum Ausführen von SQL-Zellen
- Databricks Globals:
So arbeiten Sie mit Python-Quellnotebooks:
Suchen Sie nach
jupyter.interactiveWindow.cellMarker.codeRegexund setzen Sie es auf:^# COMMAND ----------|^# Databricks notebook source|^(#\\s*%%|#\\s*\\<codecell\\>|#\\s*In\\[\\d*?\\]|#\\s*In\\[ \\])Suchen Sie nach
jupyter.interactiveWindow.cellMarker.defaultund setzen Sie es auf:# COMMAND ----------
Problembehandlung
Dieser Abschnitt enthält Informationen zum Beheben häufig auftretender Probleme.
SSH-Verbindung schlägt fehl oder läuft ab
- Überprüfen Sie, ob der Cluster in der Arbeitsbereichsbenutzeroberfläche ausgeführt wird.
- Überprüfen Sie, ob ausgehender Port 22 geöffnet und auf Ihrem Laptop, Netzwerk und VPN zulässig ist.
- Erhöhen Sie das SSH-Timeout. Siehe Verbinden mit Visual Studio Code oder Cursor.
- Bei Fehlern aufgrund von Schlüsselkonflikten
~/.databricks/ssh-tunnel-keyslöschen unddatabricks ssh setuperneut ausführen. - Bei Fehlern bei der Remote-Host-Identifizierung überprüfen Sie die
~/.ssh/known_hostsDatei und löschen Sie Einträge im Zusammenhang mit Ihrem Cluster. - SSH-Sitzungen können nach 1 Stunde fallen und nicht mehr als 10 SSH-Verbindungen zu einem einzelnen Cluster hergestellt werden. Informationen finden Sie unter Einschränkungen.
Befehl code nicht gefunden
Wenn Error: exec: "code": executable file not found in $PATH angezeigt wird, öffnen Sie die Befehlspalette (Cmd/Ctrl+Shift+P), wählen Sie Shell-Befehl: Befehl „code“ in PATH installieren und starten Sie Ihre IDE oder Terminalsitzung neu.
CLI-Authentifizierungsfehler
- Vergewissern Sie sich, dass Ihr Databricks CLI-Profil gültig ist.
databricks auth login - Bestätigen Sie, dass Sie über Berechtigungen für den Cluster verfügen
CAN MANAGE.
Mein Code funktioniert nicht
- Stellen Sie sicher, dass Sie die virtuelle Databricks-Umgebung eingerichtet haben, siehe Run code (Visual Studio Code oder Cursor)
- IPYNB-Notizbücher und
*.pyDatabricks-Notizbücher haben Zugriff auf Databricks-Globals, aber Python-Dateien*.pyhaben keinen Zugriff darauf. Siehe Databricks-Notebooks-Unterschiede.
Dateien verschwinden oder die Umgebung wird nach dem Neustart des Clusters zurückgesetzt.
- Dateien in
/Workspace,/Volumesund/dbfsEinhängungen bleiben über Clusterneustarts bestehen. Dateien in/home,/rootund andere lokale Pfade sind kurzlebig und gehen beim Neustart verloren. - Verwenden Sie die Clusterbibliotheksverwaltung für dauerhafte Abhängigkeiten. Automatisieren Sie bei Bedarf neuinstallationen mithilfe von Init-Skripts. Weitere Informationen finden Sie unter Was sind Initskripts?.
SSH-Setup schlägt bei Windows (WSL) fehl.
Führen Sie databricks ssh setup direkt auf Windows aus, nicht innerhalb von WSL. Die Windows Visual Studio Code Instanz kann keine SSH-Konfigurationen finden, die auf der WSL-Seite erstellt wurden.
Häufig gestellte Fragen
Wie unterscheidet sich der SSH-Tunnel von Databricks Connect?
Mit Databricks Connect können Sie Code mithilfe von Spark-APIs schreiben und remote auf Databricks ausführen, anstatt in der lokalen Spark-Sitzung. Die Databricks-Visual Studio Code-Erweiterung verwendet Databricks Connect, um integriertes Debuggen von Benutzercode auf Databricks bereitzustellen.
Mit dem SSH-Tunnel können Sie von Ihrer IDE aus auf den Arbeitsbereich zugreifen und Ihre gesamte Entwicklungsumgebung auf die Compute verschieben – Python, Kernel und alle Ausführungsläufe auf Databricks mit vollem Zugriff auf Computeressourcen.
Wie wird mein Code und meine Daten gesichert?
Der gesamte Code wird innerhalb Ihrer Databricks-Cloud-VPC ausgeführt. Keine Daten oder Code verlassen Ihre sichere Umgebung. SSH-Datenverkehr ist vollständig verschlüsselt.
Welche IDEs werden unterstützt?
Visual Studio Code und Cursor werden offiziell unterstützt. Jede IDE mit SSH-Funktionen ist kompatibel, aber nur VS Code und Cursor werden getestet.
Sind alle Databricks-Notizbuchfeatures über die IDE verfügbar?
Einige Features, z. B. display(), dbutils, und %sql sind mit Einschränkungen oder manuellem Setup verfügbar. Siehe Databricks-Notebooks-Unterschiede.
Wird mein Cluster automatisch gestartet, wenn ich eine Verbindung mit dem SSH-Tunnel herstellt?
Ja, aber wenn das Starten des Clusters länger dauert als das Verbindungstimeout, schlägt der Verbindungsversuch fehl. Um dies zu verhindern, erhöhen Sie den Wert von Remote.SSH: Connect Timeout aus der Befehlspalette (oder remote.SSH.connectTimeout in settings.json), um die Wahrscheinlichkeit von Timeoutfehlern weiter zu verringern.
Wie kann ich feststellen, ob mein Cluster läuft?
Navigieren Sie in der Benutzeroberfläche des Databricks-Arbeitsbereichs zu Compute , und überprüfen Sie den Status des Clusters. Der Cluster muss "Running " anzeigen, damit die SSH-Verbindung funktioniert.
Wie kann ich meine SSH/IDE-Sitzung trennen?
Sie können eine Sitzung trennen, indem Sie das IDE-Fenster schließen, indem Sie die Option " Trennen " in Ihrer IDE verwenden, ihr SSH-Terminal schließen oder den exit Befehl im Terminal ausführen.
Wie kann ich den Cluster beenden und Gebühren vermeiden, wenn ich nicht arbeite?
Beenden Sie den Cluster sofort über die Arbeitsbereichsbenutzeroberfläche. Navigieren Sie in der Benutzeroberfläche des Databricks-Arbeitsbereichs zu Compute , suchen Sie Ihren Cluster, und klicken Sie auf "Beenden " oder "Beenden".
Legen Sie eine kurze Richtlinie für die automatische Beendigung ihres Clusters über die Arbeitsbereichsbenutzeroberfläche fest. Nachdem Sie die Verbindung getrennt haben, wartet der SSH-Server auf den shutdown-delay Zeitraum (Standard: 10 Minuten), und das Leerlauftimeout des Clusters wird angewendet.
Wie sollte ich dauerhafte Abhängigkeiten behandeln?
Abhängigkeiten, die während einer Sitzung installiert wurden, gehen nach dem Neustart des Clusters verloren. Verwenden Sie beständigen Speicher (/Workspace/Users/<your-username>) für Anforderungen und Setupskripts. Verwenden Sie Clusterbibliotheken oder Initskripts für die Automatisierung.
Welche Authentifizierungsmethoden werden unterstützt?
Die Authentifizierung verwendet die Databricks CLI und die ~/.databrickscfg Profildatei. SSH-Schlüssel werden vom SSH-Tunnel verarbeitet.
Kann ich eine Verbindung mit externen Datenbanken oder Diensten aus dem Cluster herstellen?
Ja, solange Ihr Clusternetzwerk ausgehende Verbindungen zulässt und sie über die erforderlichen Bibliotheken verfügen.
Kann ich zusätzliche IDE-Erweiterungen verwenden?
Die meisten Erweiterungen funktionieren, wenn sie in Ihrer Remote-SSH-Sitzung installiert werden, je nach IDE und Cluster. Visual Studio Code installiert standardmäßig keine lokalen Erweiterungen auf Remotehosts. Sie können sie manuell installieren, indem Sie den Erweiterungsbereich öffnen und Ihre lokalen Erweiterungen auf dem Remotehost aktivieren. Sie können Visual Studio Code auch so konfigurieren, dass bestimmte Erweiterungen immer remote installiert werden. Siehe "Herstellen einer Verbindung mit Databricks".
Unterstützt der SSH-Tunnel Private Link?
Ja, Arbeitsbereichsadministratoren müssen jedoch URLs von Visual Studio Code- und Cursorerweiterungs-Marketplaces zulassen. Ihr lokaler Computer muss auch über die Möglichkeit verfügen, auf das Internet zuzugreifen.