Nawiązywanie połączenia z usługą Databricks przy użyciu tunelu SSH

Ważne

Ta funkcja jest dostępna w wersji beta.

Koszty i ceny funkcji w wersji beta mogą ulec zmianie.

Tunel Azure Databricks SSH (Secure Shell) łączy Visual Studio Code, Cursor lub Twój terminal z przestrzenią roboczą Azure Databricks oraz bezserwerowymi zasobami obliczeniowymi Azure Databricks, AI Runtime lub klasycznymi zasobami obliczeniowymi. Używaj go do edycji plików workspace oraz uruchamiania lub debugowania skryptów i notatników Python, przy czym środowisko Python i wykonywanie kodu odbywa się w zdalnym środowisku obliczeniowym. Połącz się bezpośrednio z bezserwerowymi zasobami obliczeniowymi lub skonfiguruj połączenie SSH do wielokrotnego użytku z dedykowanym klastrem klasycznym.

Requirements

Rozpocznij połączenie SSH z lokalnego komputera. Tunel nie może być uruchamiany z innego zdalnego środowiska ani z kontenera Docker.

Aby połączyć się z zasobami obliczeniowymi serverless lub klasycznymi zasobami obliczeniowymi, musisz mieć:

Aby nawiązać połączenie z bezserwerowym procesorem GPU, należy włączyć funkcję środowiska uruchomieniowego sztucznej inteligencji. Zobacz AI runtime.

Dodatkowe wymagania dla klasycznych zasobów obliczeniowych

Aby połączyć się z klasycznym środowiskiem obliczeniowym (dedykowanym, dla jednego użytkownika):

Wybierz połączenie SSH

Użyj metody połączenia dla typu zasobu obliczeniowego:

Compute Metoda połączenia Wymaganie dotyczące konfiguracji
Bezserwerowe obliczenia databricks ssh connect Nie ma osobnego etapu konfiguracji SSH.
Dodaj --ide vscode lub --ide cursor, aby uruchomić IDE.
Środowisko uruchomieniowe sztucznej inteligencji databricks ssh connect --accelerator <accelerator> Nie ma osobnego etapu konfiguracji SSH.
Dodaj --ide vscode lub --ide cursor, aby uruchomić IDE.
Dla wspieranych akceleratorów zobacz --accelerator.
Klasyczne, dedykowane, jednoużytkownikowe obliczenia Uruchom databricks ssh setup --name <connection-name> w terminalu.
Następnie rozpocznij sesję SSH z IDE lub uruchom ssh <connection-name>.
Wybierz dedykowany, jednoużytkownikowy klaster spełniający klasyczne wymagania obliczeniowe.
Udostępnione klastry nie są obsługiwane.

Tunel SSH i rozszerzenie IDE Databricks nie są kompatybilne i nie powinny być używane razem. Dla porównania z Databricks Connect i innymi opcjami programistycznymi zobacz Łączenie z poziomu środowiska IDE.

Nawiązywanie połączenia z bezserwerową usługą obliczeniową

Po spełnieniu powyższych wymagań uruchom databricks ssh connect z terminala lub IDE.

Wartość --ide określa, który edytor zostanie uruchomiony, niezależnie od tego, z którego edytora lub terminala uruchomisz polecenie.

Visual Studio Code

databricks ssh connect --ide vscode

CLI otwiera okno programu Visual Studio Code połączone ze zdalnym zasobem obliczeniowym.

Cursor

databricks ssh connect --ide cursor

CLI otwiera okno Cursor połączone ze zdalnym środowiskiem obliczeniowym.

Terminal

databricks ssh connect

CLI uruchamia interaktywną sesję SSH.

Opcje poleceń, w tym połączenia nazwane i profile uwierzytelniania, można znaleźć w artykule Databricks ssh connect.

Po połączeniu otwórz swój projekt w Workspace i wybierz środowisko Python. Jeśli połączenie się nie powiedzie, zobacz Diagnostyka połączeń tunelu SSH.

Połącz się z bezserwerową mocą obliczeniową GPU za pomocą AI Runtime

Przy włączonym AI Runtime dodaj --accelerator, aby używać obliczeń GPU:

databricks ssh connect --accelerator GPU_1xA10

databricks ssh connect zapewnia interaktywną sesję na jednym węźle. W przypadku długotrwałych zadań treningowych lub treningu rozproszonego na wielu węzłach zamiast tego prześlij obciążenie za pomocą databricks air. Zobacz Korzystanie z interfejsu wiersza polecenia Databricks z AI Runtime.

Połącz z klasycznymi zasobami obliczeniowymi

Aby skonfigurować połączenie wielokrotnego użytku z klasycznym klastrem dedykowanym, ustaw nazwę hosta SSH, wybierz ten host w swoim IDE lub połącz się w terminalu.

Konfigurowanie połączenia SSH

Uwaga / Notatka

Skonfigurowanie połączenia SSH jest wymagane tylko w przypadku nawiązywania połączenia z klasycznymi obliczeniami.

Uruchom databricks ssh setup na swoim lokalnym komputerze. Zastąp <connection-name> nazwą tego połączenia, na przykład my-connection:

databricks ssh setup --name <connection-name>

CLI prosi o wybranie klastra i dodaje wpis hosta do konfiguracji SSH. Możesz też wybrać klaster bezpośrednio. Zastąp <cluster-id> identyfikatorem swojego dedykowanego klastra:

databricks ssh setup --name <connection-name> --cluster <cluster-id>

Aby skonfigurować, jak długo tunel SSH czeka po rozłączeniu się ostatniego klienta, dodaj --shutdown-delay do polecenia setup. Wartość domyślna to 10 minut. Na przykład, aby ustawić 30-minutowe opóźnienie dla połączeń przez ten wpis hosta SSH:

databricks ssh setup --name <connection-name> --cluster <cluster-id> --shutdown-delay 30m

Uwaga / Notatka

W przypadku użytkowników środowiska IntelliJ usługa Databricks zaleca dodanie --auto-start-cluster=false do polecenia konfiguracji i ręczne uruchomienie klastra przed nawiązaniem połączenia. Dzieje się tak, ponieważ środowiska IDE JetBrains uruchamiają wszystkie skonfigurowane klastry podczas uruchamiania, co może spowodować nieoczekiwane opłaty za obliczenia.

Nawiązywanie połączenia przy użyciu programu Visual Studio Code lub kursora

  1. W przypadku programu Visual Studio Code zainstaluj rozszerzenie Remote SSH. Kursor domyślnie zawiera zdalne rozszerzenie SSH.

  2. W menu głównym środowiska IDE kliknij pozycję Wyświetl>paletę poleceń. Wybierz pozycję Remote-SSH: Settings (Zdalne połączenie SSH: ustawienia). Alternatywnie wybierz pozycję Preferencje: Otwórz ustawienia użytkownika (JSON), aby zmodyfikować settings.json je bezpośrednio.

  3. W sekcji Remote.SSH: Domyślne rozszerzenia (lub remote.SSH.defaultExtensions w systemie settings.json) dodaj ms-Python.Python i ms-toolsai.jupyter.

    W przypadku modyfikowania settings.jsonelementu :

    "remote.SSH.defaultExtensions": [
        "ms-Python.Python",
        "ms-toolsai.jupyter"
    ]
    

    Uwaga / Notatka

    Opcjonalnie zwiększ wartość Remote.SSH: Limit czasu połączenia (lub remote.SSH.connectTimeout in settings.json), aby jeszcze bardziej zmniejszyć prawdopodobieństwo wystąpienia błędów przekroczenia limitu czasu. Domyślny limit czasu to 360.

  4. W palecie poleceń wybierz pozycję Remote-SSH: Połącz z hostem.

  5. Z menu rozwijanego wybierz połączenie skonfigurowane w pierwszym kroku. Środowisko IDE przechodzi do nawiązywania połączenia w nowym oknie.

Nawiązywanie połączenia przy użyciu środowiska IDE IntelliJ

  1. Postępuj zgodnie z samouczkiem dotyczącym serwera zdalnego, aby się przygotować.
  2. Na ekranie nowego połączenia wprowadź:
    • Nazwa użytkownika: root
    • Host: <connection-name>

Połącz się z klasycznym środowiskiem obliczeniowym z terminala

Użyj nazwy połączenia, którą skonfigurowałeś databricks ssh setup:

ssh <connection-name>

Dla bezpośredniego połączenia bez wpisu hosta SSH wielokrotnego użytku możesz również użyć CLI. Zamień <cluster-id> na dedykowany identyfikator klastra:

databricks ssh connect --cluster <cluster-id>

Zobacz databricks ssh connect.

Otwórz projekty obszaru roboczego przez SSH

Domyślnie polecenie databricks ssh connect jest otwierane w katalogu tymczasowym. Aby uzyskać dostęp do plików obszaru roboczego, przejdź do katalogu obszaru roboczego z poziomu środowiska IDE lub terminalu:

  • W Visual Studio Code lub Cursor, z poziomu Palety poleceń (Cmd/Ctrl+Shift+P) wybierz Otwórz folder i przejdź do /Workspace/Users/<your-username>.
  • W oknie terminalu zmień katalog: cd /Workspace/Users/<your-username>.

Uwaga / Notatka

Pliki w systemach /Workspace, /Volumesi /dbfs są utrwalane podczas ponownego uruchamiania klastra. Pliki w /home, /root i innych lokalnych ścieżkach są tymczasowe i zostaną utracone po ponownym uruchomieniu.

Uruchamiaj Python i notatniki w sesji SSH

Wybierz środowisko Python udostępnione przez sesję SSH przed uruchomieniem kodu. Dla klasycznych obliczeń środowisko to obejmuje wbudowane biblioteki Databricks Runtime oraz biblioteki o zakresie klastra.

  1. Otwórz paletę poleceń (Cmd/Ctrl+Shift+P) i wybierz pozycję Python: Wybierz interpreter.

  2. pythonEnv-xxx Wybierz środowisko wirtualne z listy. Jeśli skonfigurujesz zależności Pythona przy użyciu flagi --base-environment, wybierz dłuższą nazwę środowiska wirtualnego z listy opcji. Jeśli środowisko wirtualne nie jest wyświetlane:

    1. Uruchom polecenie echo $DATABRICKS_VIRTUAL_ENV z poziomu terminalu w środowisku IDE.

      Przykładowe dane wyjściowe: /local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/python

    2. Wklej całe dane wyjściowe jako ścieżkę interpretera w monicie Python: Select Interpreter.

  3. Otwórz nowy terminal, a środowisko wirtualne powinno zostać automatycznie aktywowane.

  4. Aby uruchomić notes Jupyter, upewnij się, że środowisko wirtualne zostało wybrane jako jądro. Kliknij Wybierz jądro w prawym górnym rogu notatnika.

Uruchamiaj i debuguj pliki Pythona i notatniki .ipynb za pomocą standardowych rozszerzeń Python i Jupyter.

Aby użyć platformy Spark w pliku Python w obliczeniach bezserwerowych, zainicjuj sesję jawnie:

from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.serverless().profile("DEFAULT").getOrCreate()

Zarządzanie zależnościami dla sesji SSH

Wybierz zarządzanie zależnościami dla typu obliczeniowego:

W przypadku pakietów innych niż Python zobacz zależności inne niż Python.

Środowiska podstawowe obszaru roboczego (zalecane dla środowiska uruchomieniowego bezserwerowego i środowiska uruchomieniowego sztucznej inteligencji)

Uwaga / Notatka

Ta funkcja wymaga włączenia obsługi bezserwerowego środowiska podstawowego obszaru roboczego w wersji zapoznawczej zadań. Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.

Aby wstępnie skonfigurować zależności Python, użyj środowiska podstawowego obszaru roboczego z bezserwerowym środowiskiem w wersji 4 lub nowszej. Tunel SSH nie obsługuje --base-environment w środowisku bezserwerowym w wersji 5 lub wyższej. Utwórz środowisko bazowe przy użyciu interfejsu użytkownika workspace lub polecenia interfejsu wiersza polecenia Databricks databricks environments create-workspace-base-environment.

Określ środowisko za pomocą opcji --base-environment podczas nawiązywania połączenia:

databricks ssh connect --base-environment my-workspace-env

Opcja --base-environment akceptuje nazwę wyświetlaną, ścieżkę do pliku YAML obszaru roboczego lub identyfikator zasobu. Nie można go połączyć z --cluster. Zobacz databricks ssh connect.

Biblioteki klastrów (zalecane w przypadku obliczeń klasycznych)

Zainstaluj zależności przy użyciu interfejsu użytkownika obszaru roboczego w obszarze Biblioteki obliczeniowe>. Te funkcje są utrwalane podczas ponownego uruchamiania klastra i są dostępne w programie pythonEnv-xxx. Zobacz Biblioteki klastrów.

Zależności inne niż Python

Aby zachować zależności inne niż Python, użyj skryptu init, który instaluje pakiety podczas uruchamiania obliczeń. Opcjonalnie pakiety można przechowywać w wolumenie Unity Catalog i odwoływać się do nich ze skryptu init. Zobacz Czym są skrypty init?.

konfiguracja notesu specyficznego dla Project

W przypadku zależności o zakresie projektu, na początku każdej sesji uruchom notatnik zawierający polecenia %pip install.

# 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 Polecenia obejmują zabezpieczenia specyficzne dla platformy Databricks i propagują zależności do węzłów executorów platformy Spark. Umożliwia to korzystanie z funkcji zdefiniowanych przez użytkownika (UDF) z niestandardowymi zależnościami.

Aby uzyskać więcej przykładów, zobacz Zarządzanie bibliotekami za pomocą %pip poleceń.

Nie musisz ponownie uruchamiać notatnika konfiguracyjnego, jeśli połączysz się przed zamknięciem tunelu SSH. Domyślnie tunel zamyka się 10 minut po rozłączeniu ostatniego klienta. Aby zmienić to opóźnienie, użyj --shutdown-delay z poleceniem dla swojej metody połączenia:

  • Aby uzyskać klasyczne połączenie z zasobem obliczeniowym wielokrotnego użytku, ustaw opóźnienie za pomocą databricks ssh setup. Wygenerowany wpis hosta SSH powoduje opóźnienie po połączeniu z IDE lub uruchomieniu ssh <connection-name>.
  • W przypadku bezpośredniego połączenia CLI użyj databricks ssh connect.

Uwaga / Notatka

Wiele sesji SSH w tym samym klastrze współużytkuje jedno środowisko wirtualne.

Używaj Git w sesji SSH

Ważne

Ta funkcja jest dostępna w publicznej wersji testowej. Administratorzy obszarów roboczych mogą zarządzać dostępem do obsługi Git CLI dla folderów Git na stronie Wersje zapoznawcze. Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.

Możesz użyć CLI Git w tunelu SSH z nowo utworzonymi folderami Git oraz poświadczeniami Git skonfigurowanymi w przestrzeni roboczej Azure Databricks. Zobacz Używanie poleceń Git CLI.

Jeśli CLI zamiast automatycznie wykrywać poświadczenia wyświetla monit o dane logowania, musisz połączyć swojego dostawcę Git z Azure Databricks. Zobacz Łączenie dostawcy usługi Git z usługą Databricks.

Utrzymuj odłączone procesy działające

Domyślnie, gdy tunel SSH zostaje zamknięty, kończy wszystkie procesy rozpoczęte przez sesję, w tym procesy, które odłączyłeś od sesji za pomocą tmux, setsid, lub nohup. Tunel rejestruje ostrzeżenie, które wymienia nazwy odłączonych procesów, które zaraz zatrzyma. Aby odłączone zadanie działało po zamknięciu tunelu, użyj flagi --keep-detached-processes:

  • Serverless lub klasyczne obliczenia: Przekazuj flagę do databricks ssh connect.
  • Klasyczne obliczenia ze skonfigurowanym hostem SSH: Przekaż flagę do polecenia databricks ssh setup. Wygenerowany wpis hosta SSH jest stosowany za każdym razem, gdy się łączysz. Połączenia bezserwerowe nie wymagają konfiguracji, więc ta opcja dotyczy tylko klasycznych zasobów obliczeniowych.

Poniższy przykład utrzymuje odłączone procesy działające w bezserwerowym środowisku obliczeniowym:

databricks ssh connect --keep-detached-processes

Poniższy przykład utrzymuje odłączone procesy działające na dedykowanym klastrze:

databricks ssh connect --cluster 0123-456789-abcdefgh --keep-detached-processes

Gdy używasz tej flagi, tunel zamyka się następująco:

  • Zatrzymane są tylko tunel SSH i jego sshd procesy. Procesy odłączone od terminala nadal działają.
  • Wszystkie odłączone procesy, które nadal działają, zachowują dostęp do /Workspace i /Volumes.
  • Każde wykonanie zadania kończy się, gdy ostatni odłączony proces kończy się.

Przy następnym połączeniu z tym samym środowiskiem obliczeniowym możesz ponownie dołączyć do odłączonej pracy, na przykład za pomocą tmux attach. Tryb tunelu SSH jest ustawiony podczas uruchamiania. Jeśli połączysz się z flagą, gdy połączenie się pierwotnie zaczęło bez niej, CLI uruchamia nowe połączenie.

Należy pamiętać o następujących kwestiach:

  • Chociaż uruchomienie zadania pozostaje aktywne, klaster nie zostaje automatycznie zakończony. Sesja bezczynna tmux jest traktowana jako działający odłączony proces, więc zamknij ją, gdy już jej nie potrzebujesz.
  • Wykonanie zadania nadal się zatrzymuje, gdy osiągnie maksymalny czas życia określony przez --server-timeout. Ten czas trwania liczy się od momentu uruchomienia zadania, a nie od momentu zamknięcia tunelu. Do dłuższych zadań używaj jobs lub pakietów.

Ograniczenia tunelu SSH

Tunel SSH udostępniany przez usługę Databricks ma następujące ograniczenia:

  • Udostępnione klastry nie są obsługiwane.
  • Rozszerzenie IDE Databricks oraz tunel SSH nie są jeszcze kompatybilne i nie powinny być używane razem.
  • Pliki edytowane poza /Workspace, /Volumes i /dbfs zostaną utracone w momencie ponownego uruchomienia klastra.
  • Dozwolone jest maksymalnie 10 połączeń SSH na klaster.
  • Nieaktywne sesje mogą zostać rozłączone po 1 godzinie.
  • Nie można uruchomić tunelu SSH z innych środowisk zdalnych ani kontenerów platformy Docker.
  • Problemy z wydajnością lub połączeniem mogą wystąpić, gdy co najmniej trzy notesy Jupyter są otwarte jednocześnie.

Zachowanie notesu w sesjach SSH

Podczas korzystania z tunelu SSH istnieją pewne różnice w laptopach:

  • Pliki języka Python nie definiują żadnych globalnych zmiennych Databricks (takich jak spark lub dbutils). Należy je jawnie zaimportować za pomocą polecenia from databricks.sdk.runtime import spark.
  • W przypadku notesów ipynb dostępne są następujące funkcje:
    • Globals usługi Databricks: display, displayHTML, dbutils, table, sql, udf, getArgument, sc, sqlContext, spark
    • %sql magiczne polecenie do uruchamiania komórek SQL

Aby pracować z notatnikami źródłowymi Pythona:

  • Wyszukaj jupyter.interactiveWindow.cellMarker.codeRegex i ustaw na:

    ^# COMMAND ----------|^# Databricks notebook source|^(#\\s*%%|#\\s*\\<codecell\\>|#\\s*In\\[\\d*?\\]|#\\s*In\\[ \\])
    
  • Wyszukaj jupyter.interactiveWindow.cellMarker.default i ustaw na:

    # COMMAND ----------
    

Rozwiązywanie problemów z połączeniami tunelu SSH

Zacznij od symptomu odpowiadającego usterce:

Objaw Pierwsze sprawdzenie
Połączenie SSH zawodzi lub przekracza limit czasu. Sprawdź dostęp do HTTPS i WebSocket obszaru roboczego. Dla klasycznych obliczeń sprawdź też stan klastra i timeout IDE. Zobacz połączenie SSH nie działa lub przekracza limit czasu.
CLI informuje, że nie może znaleźć code. Zainstaluj polecenie shell Visual Studio Code w lokalnym środowisku PATH. Patrz code nie znaleziono polecenia.
Uwierzytelnianie CLI nie udaje się. Sprawdź profil CLI i, w przypadku classic compute, uprawnienia klastra. Zobacz błędy uwierzytelniania CLI.
CLI raportuje invalid_grant z Refresh token is invalid. Zaloguj się ponownie do workspace używając tego samego profilu CLI, a następnie spróbuj ponownie nawiązać połączenie. Wyświetla się komunikat Token odświeżania jest nieprawidłowy.
Kod Python lub notatniki nie działają po połączeniu. Sprawdź wybrany interpreter lub jądro notatnika. Zobacz kod Python lub notatniki nie działają w sesji SSH.
Pliki znikają po restarcie klastra. Sprawdź, czy pliki były przechowywane na nietrwałej lokalnej ścieżce. Zobacz Pliki znikają lub resetuje środowisko po restarcie klastra.

Połączenie SSH kończy się niepowodzeniem lub przekracza limit czasu

  • W przypadku klasycznych zasobów obliczeniowych sprawdź, czy klaster działa w interfejsie workspace.
  • Sprawdź, czy twoja sieć, VPN i zapora umożliwiają ruch HTTPS i WebSocket do domeny obszaru roboczego. Tunel SSH nie korzysta z portu 22. Tuneluje cały ruch za pośrednictwem takiego samego punktu końcowego HTTPS jak inne polecenia CLI Databricks. Zobacz Konfigurowanie reguł zapory nazw domen.
  • Jeśli proxy lub zapora sieciowa sprawdza ruch TLS, sprawdź, czy pozwala na żądanie aktualizacji WebSocket. Element pośredniczący, który blokuje lub usuwa żądanie uaktualnienia, powoduje niepowodzenie połączenia lub przekroczenie limitu czasu. Poproś administratora sieci o zezwolenie na uaktualnienia WebSocket do domeny obszaru roboczego lub o wyłączenie inspekcji TLS dla tej domeny.
  • Jeśli łączysz się przez firmowy serwer proxy HTTP, ustaw zmienną środowiskową HTTPS_PROXY lub NO_PROXY, aby pominąć serwer proxy dla domeny obszaru roboczego. Tunel SSH używa tej samej konfiguracji proxy co inne polecenia CLI Databricks. Zobacz konfigurację serwera proxy.
  • Sprawdź, czy Twój lokalny komputer ma dostęp HTTPS do github.com i release-assets.githubusercontent.com.
  • Zwiększ limit czasu protokołu SSH. Zobacz Nawiązywanie połączenia przy użyciu programu Visual Studio Code lub kursora.
  • W przypadku błędów niezgodności klucza usuń ~/.databricks/ssh-tunnel-keys i ponownie uruchom databricks ssh setup.
  • W przypadku błędów "identyfikacja hosta zdalnego uległa zmianie" sprawdź plik ~/.ssh/known_hosts i usuń wpisy związane z Twoim klastrem.
  • Sesje SSH mogą spaść po 1 godzinie i nie więcej niż 10 połączeń SSH można nawiązać z jednym klastrem. Zobacz ograniczenia tunelu SSH.

code Polecenie nie zostało znalezione

Jeśli widzisz Error: exec: "code": executable file not found in $PATH, otwórz Paletę poleceń (Cmd/Ctrl+Shift+P), wybierz Shell Command: Install 'code' command in PATH i ponownie uruchom IDE lub sesję terminala.

Błędy uwierzytelniania CLI

  • Zaloguj się do swojego workspace, korzystając z databricks auth login.
  • W przypadku klasycznych obliczeń sprawdź, czy masz uprawnienia CAN MANAGE na klastrze.

Token odświeżania jest nieprawidłowy

Jeśli databricks ssh connect kończy się błędami error getting token, invalid_grant i Refresh token is invalid, oznacza to, że serwer autoryzacji odrzucił zapisany token odświeżający OAuth klienta CLI. Zaloguj się ponownie, aby uzyskać nową sesję:

  1. Zidentyfikuj profil konfiguracyjny dla przestrzeni roboczej, do której chcesz się połączyć:

    databricks auth profiles --skip-validate
    
  2. Zaloguj się ponownie, używając tego profilu. Zastąp <workspace-url> adresem URL przestrzeni roboczej, bez ścieżki /oidc/v1/token, a <profile-name> odpowiadającą nazwą profilu:

    databricks auth login --host <workspace-url> --profile <profile-name>
    

    Ukończ proces logowania w przeglądarce.

  3. Ponów połączenie z tym samym profilem:

    databricks ssh connect --ide vscode --profile <profile-name>
    

    Użyj --ide cursor dla Cursor lub pomiń --ide dla sesji terminalowej.

Jeśli błąd się utrzymuje, sprawdź, czy nieudane polecenie celuje w tę samą przestrzeń roboczą i ten sam profil, do którego się właśnie zalogowałeś. Zobacz uwierzytelnianie OAuth użytkownik-maszyna (U2M).

Kod Python lub notatniki nie działają w sesji SSH

Pliki znikają lub środowisko resetuje się po restarcie klastra

  • Pliki w punktach montowania /Workspace, /Volumes i /dbfs pozostają trwałe podczas ponownego uruchamiania klastra. Pliki w /home, /root i innych lokalnych ścieżkach są tymczasowe i zostaną utracone po ponownym uruchomieniu.
  • Użyj zarządzania bibliotekami klastrów do zarządzania stałymi zależnościami. W razie potrzeby zautomatyzuj ponowne instalowanie za pomocą skryptów inicjowania. Zobacz Czym są skrypty init?.

Instalacja protokołu SSH kończy się niepowodzeniem w Windows (WSL)

Uruchom databricks ssh setup bezpośrednio na Windows, a nie w środowisku WSL. Instancja Visual Studio Code w systemie Windows nie może znaleźć konfiguracji SSH utworzonych po stronie WSL.

Często zadawane pytania

Czy bezserwerowe przetwarzanie wymaga konfiguracji SSH?

No. Po zainstalowaniu i uwierzytelnieniu interfejsu wiersza polecenia Databricks użyj databricks ssh connect do obliczeń bezserwerowych. Polecenie databricks ssh setup konfiguruje wielokrotnie używane wpisy hosta SSH dla klasycznych dedykowanych zasobów obliczeniowych.

Czy tunel SSH Databricks wymaga portu 22?

No. Tunel SSH przesyła ruch przez HTTPS do domeny workspace i wymaga wsparcia dla WebSocket. Twoja sieć, VPN, zapora sieciowa i proxy muszą umożliwiać taki ruch. Zobacz połączenie SSH nie działa lub przekracza limit czasu.

Czym różni się tunel SSH od usługi Databricks Connect?

Usługa Databricks Connect umożliwia pisanie kodu przy użyciu interfejsów API platformy Spark i zdalne uruchamianie ich w obliczeniach usługi Databricks zamiast w lokalnej sesji platformy Spark. Rozszerzenie databricks Visual Studio Code używa usługi Databricks Connect w celu zapewnienia wbudowanego debugowania kodu użytkownika w usłudze Databricks.

Tunel SSH pozwala uzyskać dostęp do przestrzeni roboczej z IDE i przenosi całe środowisko programistyczne na zasoby obliczeniowe. Python, jądro i wykonywanie kodu działają na Azure Databricks z dostępem do zasobów obliczeniowych.

Jak jest zabezpieczony mój kod i dane?

Ruch SSH jest szyfrowany end-to-end, a kod działa na obliczeniach Azure Databricks, do których się łączysz. Uwierzytelnianie korzysta z CLI Databricks oraz skonfigurowanego profilu workspace. Zobacz Jakie metody uwierzytelniania są obsługiwane?.

Które środowiska IDE są obsługiwane?

Visual Studio Code i kursor są oficjalnie obsługiwane. Każde środowisko IDE z funkcjami SSH jest zgodne, ale testowane są tylko program VS Code i kursor.

Czy wszystkie funkcje notesu Databricks są dostępne w środowisku IDE?

Niektóre funkcje, takie jak display(), dbutilsi %sql , są dostępne z ograniczeniami lub ręczną konfiguracją. Zobacz Zachowanie Notebooka w sesjach SSH.

Czy mój klaster zostanie uruchomiony automatycznie po nawiązaniu połączenia przy użyciu tunelu SSH?

Tak, ale jeśli uruchomienie klastra trwa dłużej niż przekroczenie limitu czasu połączenia, próba połączenia zakończy się niepowodzeniem. Aby temu zapobiec, zwiększ wartość remote.SSH: Limit czasu połączenia z palety poleceń (lub remote.SSH.connectTimeout in settings.json), aby jeszcze bardziej zmniejszyć prawdopodobieństwo błędów przekroczenia limitu czasu.

Jak sprawdzić, czy mój klaster jest uruchomiony?

Przejdź do obszaru obliczeniowego w interfejsie użytkownika obszaru roboczego usługi Databricks i sprawdź stan klastra. Klaster musi pokazywać stan Działa, aby połączenie SSH działało.

Jak rozłączyć sesję SSH/IDE?

Sesję można rozłączyć, zamykając okno ide, używając opcji Rozłącz w środowisku IDE, zamykając terminal SSH lub uruchamiając exit polecenie w terminalu.

Jak zatrzymać klaster i uniknąć opłat, gdy nie pracuję?

Aby zatrzymać się natychmiast, zakończ działanie klastra z poziomu interfejsu użytkownika obszaru roboczego. Przejdź do Compute w interfejsie użytkownika obszaru roboczego usługi Databricks, znajdź klaster i kliknij Zakończ lub Zatrzymaj.

Ustaw krótką politykę automatycznego zakończenia dla klastra z poziomu interfejsu użytkownika obszaru roboczego. Po rozłączeniu tunel SSH czeka przez okres shutdown-delay (domyślnie: 10 minut), następnie zaczyna obowiązywać limit czasu bezczynności klastra. Jeśli używasz --keep-detached-processes, klaster nie kończy się automatycznie, dopóki działają odłączone procesy. Zobacz Utrzymywanie działania odłączonych procesów.

Jak obsługiwać trwałe zależności?

Zależności zainstalowane podczas sesji zostaną utracone po ponownym uruchomieniu klastra. Użyj magazynu trwałego (/Workspace/Users/<your-username>) dla wymagań i skryptów konfiguracji. Użyj bibliotek klastra lub skryptów inicjowania na potrzeby automatyzacji.

Jakie metody uwierzytelniania są obsługiwane?

Uwierzytelnianie używa interfejsu wiersza polecenia (CLI) usługi Databricks i pliku profilów ~/.databrickscfg. Klucze SSH są obsługiwane przez tunel SSH.

Czy mogę nawiązać połączenie z zewnętrznymi bazami danych lub usługami z klastra?

Tak, o ile sieć klastra zezwala na połączenia wychodzące i masz niezbędne biblioteki.

Czy można używać dodatkowych rozszerzeń IDE?

Większość rozszerzeń działa w przypadku instalacji w ramach zdalnej sesji SSH, w zależności od środowiska IDE i klastra. Program Visual Studio Code domyślnie nie instaluje rozszerzeń lokalnych na hostach zdalnych. Można je zainstalować ręcznie, otwierając panel rozszerzeń i włączając rozszerzenia lokalne na hoście zdalnym. Można również skonfigurować program Visual Studio Code, aby zawsze zdalnie instalować pewne rozszerzenia. Zobacz Nawiązywanie połączenia z usługą Databricks.

Tak, jednak administratorzy przestrzeni roboczej muszą dodać do listy dozwolonych adresy URL sklepów z rozszerzeniami Visual Studio Code i Cursor. Komputer lokalny musi mieć również możliwość uzyskiwania dostępu do Internetu.