Připojení k Databricks pomocí tunelu SSH

Důležité

Tato funkce je v beta verzi.

Tunel SSH poskytovaný Službou Databricks umožňuje přístup k pracovnímu prostoru a interaktivně spouštět úlohy ve výpočetních prostředích Databricks z prostředí IDEs pomocí tunelu SSH. Nastavení je jednoduché, eliminuje potřebu správy prostředí a udržuje veškerý kód a data v pracovním prostoru Databricks zabezpečená.

Požadavky

Pokud chcete použít tunel SSH pro připojení k bezserverovým nebo klasickým výpočetním prostředkům Databricks, musíte mít:

  • Rozhraní příkazového řádku Databricks verze 1.5.0 nebo vyšší nainstalované na místním počítači a nakonfigurované ověřování Viz Instalaci nebo aktualizaci rozhraní příkazového řádku Databricks.
  • Jednu z následujících možností:
    • Visual Studio Code ve verzi 1.110.0 (Universal) nebo novější a s nainstalovaným rozšířením Remote - SSH (1.0.46+).
    • Verze kurzoru: 2.6.11 (Universal) nebo vyšší.

Pokud se chcete připojit k výpočetním prostředkům GPU bez serveru, musí být povolená funkce AI Runtime. Viz AI Runtime.

Připojení ke klasickému výpočetnímu prostředí (vyhrazenému pro jednoho uživatele):

Připojení k výpočetním prostředkům bez serveru

Pokud se chcete připojit k bezserverovému výpočetnímu prostředí, spusťte databricks ssh connect příkaz z terminálu v integrovaném vývojovém prostředí (IDE). Nevyžaduje se žádný samostatný krok nastavení.

Další informace o databricks ssh connect příkazu naleznete ssh ve skupině příkazů.

databricks ssh connect

--accelerator Použijte možnost pro připojení k AI Runtime:

databricks ssh connect --accelerator=GPU_1xA10

databricks ssh connect poskytuje interaktivní relaci na jednom uzlu. Pro dlouhotrvající trénovací úlohy nebo distribuované trénování ve více uzlech odešlete úlohu místo toho pomocí rozhraní příkazového řádku air. Viz AI Runtime CLI.

Po připojení dokončete nastavení vývojového prostředí. Viz Otevření projektů.

Chcete-li se připojit k bezserverovým výpočetním prostředkům a spustit relaci ve Visual Studio Code nebo Cursoru, použijte možnost --ide. Rozhraní příkazového řádku otevře okno integrovaného vývojového prostředí odkazující na složku domovského pracovního prostoru.

databricks ssh connect --ide=vscode

Připojení ke klasickému výpočetnímu prostředí

Pokud se chcete připojit ke klasickému výpočetnímu prostředí, nejprve nastavte připojení SSH a pak se připojte pomocí integrovaného vývojového prostředí nebo z terminálu.

Nastavení připojení SSH

Poznámka:

Nastavení připojení SSH se vyžaduje jenom v případě, že se připojujete ke klasickému výpočetnímu prostředí.

Nejprve nastavte tunel SSH pomocí příkazu nastavení databricks ssh . Zadejte název připojení, například nahraďte následujícím kódem <connection-name>my-connection:

databricks ssh setup --name <connection-name>

Rozhraní příkazového řádku vás vyzve k výběru clusteru. Můžete také zadat jednu přímo pomocí --cluster <cluster-id>:

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

Poznámka:

Pro uživatele IntelliJ doporučuje Databricks přidat --auto-start-cluster=false do instalačního příkazu a spustit cluster ručně před připojením. Důvodem je to, že integrované vývojové prostředí JetBrains spouští všechny nakonfigurované clustery při spuštění, což může vést k neočekávaným poplatkům za výpočetní prostředky.

Připojení pomocí editoru Visual Studio Code nebo kurzoru

  1. Pro Visual Studio Code nainstalujte rozšíření SSH pro vzdálený přístup. Kurzor obsahuje vzdálené rozšíření SSH ve výchozím nastavení.

  2. V hlavní nabídce integrovaného vývojového prostředí klepněte na příkaz Zobrazit>paletu příkazů. Vyberte Remote-SSH: Nastavení. Případně můžete vybrat Předvolby: Otevřít uživatelská nastavení (JSON) a upravit settings.json ho přímo.

  3. V části Remote.SSH: Výchozí rozšíření (nebo remote.SSH.defaultExtensions v settings.json), přidat ms-Python.Python a ms-toolsai.jupyter.

    Pokud upravujete settings.json:

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

    Poznámka:

    Volitelně můžete zvýšit hodnotu Remote.SSH: Časový limit připojení (nebo remote.SSH.connectTimeout v settings.json) a tím se dále sníží pravděpodobnost chyb časového limitu. Výchozí časový limit je 360.

  4. Na paletě příkazů vyberte Remote-SSH: Připojit k hostiteli.

  5. V rozevírací nabídce vyberte připojení, které jste nastavili v prvním kroku. Integrované vývojové prostředí se bude připojovat v novém okně.

Připojení pomocí prostředí IntelliJ IDEs

  1. Postupujte podle kurzu vzdáleného serveru a nastavte se.
  2. Na nové obrazovce připojení zadejte:
    • Uživatelské jméno: root
    • Hostitel: <connection-name>

Připojení pomocí terminálu

ssh <connection-name>

Otevřené projekty

Ve výchozím nastavení se databricks ssh connect příkaz otevře v dočasném adresáři. Pokud chcete získat přístup k souborům pracovního prostoru, přejděte do adresáře pracovního prostoru z integrovaného vývojového prostředí nebo terminálu:

  • V Visual Studio Code nebo kurzoru v paletě příkazů (Cmd/Ctrl+Shift+P) vyberte Otevřít složku a přejděte na /Workspace/Users/<your-username>.
  • V okně terminálu změňte adresář: cd /Workspace/Users/<your-username>.

Poznámka:

Soubory v /Workspace, /Volumes a /dbfs přetrvávají napříč restartováním clusteru. Soubory v /home, /roota další místní cesty jsou dočasné a ztraceny při restartování.

Spustit kód (Visual Studio Code nebo Cursor)

Pokud chcete spustit kód pomocí tunelu SSH, musí být nastavené virtuální prostředí Databricks. Toto prostředí zahrnuje všechny integrované knihovny DBR a výpočetně ohraničené knihovny.

  1. Otevřete paletu příkazů (Cmd/Ctrl+Shift+P) a vyberte Python: Vybrat interpret.

  2. pythonEnv-xxx Ze seznamu vyberte virtuální prostředí. Pokud se nezobrazí:

    1. Spusťte echo $DATABRICKS_VIRTUAL_ENV z terminálu v integrovaném vývojovém prostředí (IDE).

      Příklad výstupu: /local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/python

    2. Celý výstup vložte jako cestu interpreta do výzvy Python: Vybrat interpret.

  3. Otevřete nový terminál a virtuální prostředí by se mělo aktivovat automaticky.

  4. Pokud chcete spustit poznámkový blok Jupyter, ujistěte se, že je virtuální prostředí vybrané jako jádro. V pravém horním rohu poznámkového bloku klikněte na Vybrat jádro .

Spouštějte a laděte soubory Pythonu a .ipynb poznámkové bloky pomocí standardních rozšíření Python a Jupyter.

Chcete-li použít Spark v souboru Pythonu v bezserverových výpočetních prostředích, inicializujte relaci explicitně:

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

Správa závislostí Pythonu

Spravujte Python závislosti globálně na úrovni clusteru nebo omezené na jednotlivé projekty pomocí poznámkových bloků.

Nainstalujte závislosti prostřednictvím uživatelského rozhraní pracovního prostoru v části Výpočetní > knihovny. Ty přetrvávají i po restartu clusteru a jsou k dispozici v pythonEnv-xxx. Viz knihovny klastru.

nastavení poznámkového bloku specifického pro Project

Pro projektové závislosti spusťte notebook obsahující %pip install příkazy na začátku každé relace:

# 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 Příkazy zahrnují mantinely specifické pro Databricks a šíří závislosti do uzlů exekutoru Sparku. To umožňuje uživatelem definované funkce (UDF) s vlastními závislostmi.

Další příklady najdete v tématu Správa knihoven pomocí %pip příkazů.

Pokud se relace znovu připojí do 10 minut, nemusíte poznámkový blok znovu spouštět. To je možné konfigurovat pomocí -shutdown-delay konfigurace SSH.

Poznámka:

Několik relací SSH ve stejném clusteru sdílí jedno virtuální prostředí.

Použití Gitu

Rozhraní příkazového řádku Gitu můžete použít v tunelu SSH s nově vytvořenými složkami Gitu a přihlašovacími údaji Gitu, které jste nakonfigurovali v pracovním prostoru Databricks.

Aby to fungovalo podle očekávání, musí správce pracovního prostoru na stránce Náhledy povolit náhled Používat příkazy Git CLI (Beta). Viz Manage Azure Databricks preview. Pokud rozhraní příkazového řádku místo automatického načtení přihlašovacích údajů vyzve k jejich zadání, musíte k Databricks připojit svého poskytovatele Git, nebo ve vašem pracovním prostoru není povolena funkce Git CLI a měli byste se obrátit na správce.

Omezení

Tunel SSH poskytovaný službou Databricks má následující omezení:

  • Sdílené clustery nejsou podporovány.
  • Rozšíření Databricks pro Visual Studio Code a tunel SSH ještě nejsou kompatibilní a neměly by se používat společně.
  • Soubory upravované mimo /Workspacea /Volumes/dbfs při restartování clusteru se ztratí.
  • Pro každý cluster je povoleno maximálně 10 připojení SSH.
  • Neaktivní relace mohou být po 1 hodině nečinnosti odpojeny.
  • Tunel SSH nelze spustit z jiných vzdálených prostředí ani kontejnerů Dockeru.
  • Pokud jsou současně otevřené tři nebo více poznámkových bloků Jupyter, může dojít k problémům s výkonem nebo připojením. Toto omezení bude vyřešeno v budoucí verzi.

Rozdíly v poznámkových blocích Databricks

Při použití tunelu SSH existují některé rozdíly v noteboocích:

  • Soubory Pythonu nedefinují žádné globální objekty Databricks (například spark nebo dbutils). Je nutné je naimportovat explicitně pomocí from databricks.sdk.runtime import spark.
  • Pro ipynb notebooky jsou k dispozici tyto funkce:
    • Globální Databricks: display, displayHTML, dbutils, table, sql, udf, getArgument, sc, sqlContext, spark
    • %sql magický příkaz ke spouštění buněk SQL

Práce se zdrojovými poznámkovými bloky Pythonu:

  • Vyhledejte jupyter.interactiveWindow.cellMarker.codeRegex a nastavte ho na:

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

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

Řešení problémů

Tato část obsahuje informace o řešení běžných problémů.

Selhání nebo vypršení časového limitu připojení SSH

  • Ověřte, že cluster běží v uživatelském rozhraní pracovního prostoru.
  • Zkontrolujte, jestli je odchozí port 22 otevřený a povolený na vašem přenosném počítači, síti a síti VPN.
  • Zvyšte časový limit pro SSH Viz Připojení pomocí editoru Visual Studio Code nebo kurzoru.
  • V případě chyb neshod klíčů odstraňte ~/.databricks/ssh-tunnel-keys a znovu spusťte databricks ssh setup.
  • V případě chyb "Identifikace vzdáleného hostitele se změnila" zkontrolujte ~/.ssh/known_hosts soubor a odstraňte položky související s vaším clusterem.
  • Relace SSH se mohou po 1 hodině odpojit a k jednomu clusteru nelze navázat více než 10 připojení SSH. Viz Omezení.

Příkaz code se nenašel

Pokud se zobrazí Error: exec: "code": executable file not found in $PATH, otevřete paletu příkazů (Cmd/Ctrl+Shift+P), vyberte příkaz prostředí Shell: Install 'code' command in PATH a restartujte své IDE nebo relaci terminálu.

Chyby ověřování CLI

  • Ověřte, že váš profil rozhraní příkazového řádku Databricks je platný pomocí databricks auth login.
  • Ověřte, že máte CAN MANAGE oprávnění ke clusteru.

Můj kód nefunguje

Po restartování clusteru se soubory zmizí nebo se resetuje prostředí.

  • Soubory v /Workspace, /Volumes a /dbfs připojených svazcích se zachovají napříč restartováním clusteru. Soubory v /home, /roota další místní cesty jsou dočasné a ztraceny při restartování.
  • Používejte správu knihovny clusteru pro trvalé závislosti. V případě potřeby automatizujte přeinstalace pomocí inicializačních skriptů. Viz Co jsou inicializační skripty?.

Instalace SSH selže na Windows (WSL)

Spusťte databricks ssh setup přímo na Windows, ne v rámci WSL. Instance Windows Visual Studio Code nemůže najít konfigurace SSH vytvořené na straně WSL.

časté otázky

Jak se tunel SSH liší od Databricks Connect?

Databricks Connect umožňuje psát kód pomocí rozhraní Spark API a spouštět je vzdáleně na výpočetních prostředcích Databricks místo v místní relaci Sparku. Rozšíření Databricks Visual Studio Code používá Databricks Connect k zajištění integrovaného ladění uživatelského kódu v Databricks.

Tunel SSH vám umožňuje přistupovat k pracovnímu prostoru z vašeho IDE a přesouvá celé vaše vývojové prostředí na výpočetní prostředky – Python, kernel i veškeré spouštění běží v Databricks s plným přístupem k výpočetním zdrojům.

Jak je můj kód a data zabezpečená?

Veškerý kód běží v rámci vašeho cloudového VPC Databricks. Žádná data ani kód neopustí vaše zabezpečené prostředí. Provoz SSH je plně šifrovaný.

Které ides se podporují?

Visual Studio Code a kurzor jsou oficiálně podporovány. Jakékoli integrované vývojové prostředí s funkcemi SSH je kompatibilní, ale testují se pouze VS Code a Cursor.

Jsou všechny funkce poznámkového bloku Databricks dostupné v integrovaném vývojovém prostředí (IDE)?

Některé funkce, jako display(), dbutils a %sql, jsou k dispozici s omezeními nebo manuálním nastavením. Prohlédněte si rozdíly poznámkových bloků Databricks.

Spustí se cluster automaticky, když se připojím pomocí tunelu SSH?

Ano, ale pokud spuštění clusteru trvá déle, než je časový limit připojení, pokus o připojení selže. Chcete-li tomu zabránit, zvyšte hodnotu Remote.SSH: Časový limit připojení z palety příkazů (nebo remote.SSH.connectTimeout v settings.json) pro další snížení pravděpodobnosti chyb časového limitu.

Jak poznám, jestli je cluster spuštěný?

Přejděte do výpočetního prostředí v uživatelském rozhraní pracovního prostoru Databricks a zkontrolujte stav clusteru. Aby fungovalo připojení SSH, musí se u clusteru zobrazit Running.

Jak můžu odpojit relaci SSH/IDE?

Relaci můžete odpojit tak, že zavřete okno integrovaného vývojového prostředí (IDE), použijete možnost Odpojit v IDE, zavřete terminál SSH nebo spustíte příkaz exit v terminálu.

Jak zastavím cluster a vyhnem se poplatkům, když nepracuji?

Pokud chcete cluster okamžitě zastavit, ukončete ho z uživatelského rozhraní pracovního prostoru. V uživatelském rozhraní pracovního prostoru Databricks přejděte na Výpočetní prostředky , vyhledejte cluster a klikněte na Ukončit nebo Zastavit.

Nastavte v clusteru krátké zásady automatického ukončení z uživatelského rozhraní pracovního prostoru. Po odpojení SSH server počká na shutdown-delay dobu (výchozí: 10 minut), pak se použije časový limit nečinnosti clusteru.

Jak mám zpracovávat trvalé závislosti?

Po restartování clusteru dojde ke ztrátě závislostí nainstalovaných během relace. Pro požadavky a instalační skripty použijte trvalé úložiště (/Workspace/Users/<your-username>). Pro automatizaci používejte knihovny clusteru nebo inicializační skripty.

Jaké metody ověřování se podporují?

Ověřování používá rozhraní příkazového řádku Databricks a váš ~/.databrickscfg soubor profilů. Klíče SSH se zpracovávají tunelem SSH.

Můžu se z clusteru připojit k externím databázím nebo službám?

Ano, pokud vaše síť clusteru umožňuje odchozí připojení a máte potřebné knihovny.

Můžu použít další rozšíření IDE?

Většina rozšíření funguje při instalaci ve vzdálené relaci SSH v závislosti na integrovaném vývojovém prostředí a clusteru. Visual Studio Code ve výchozím nastavení nenainstaluje na vzdálené hostitele místní rozšíření. Můžete je ručně nainstalovat tak, že otevřete panel rozšíření a povolíte místní rozšíření na vzdáleném hostiteli. Visual Studio Code můžete také nakonfigurovat tak, aby vždy vzdáleně nainstalovala určitá rozšíření. Viz Připojení k Databricks.

Ano, správci pracovního prostoru však musí přidat na seznam povolených adresy URL tržišť rozšíření pro Visual Studio Code a Cursor. Místní počítač musí mít také možnost přistupovat k internetu.