Csatlakozás a Databrickshez SSH-alagút használatával

Fontos

Ez a funkció bétaverzióban érhető el.

A Beta funkciók ára és árazása változhat.

Az Azure Databricks SSH (Secure Shell) alagút kapcsolatot teremt a Visual Studio Code, a Cursor vagy a terminálod, valamint az Azure Databricks-munkaterület és az Azure Databricks serverless számítási környezet, az AI Runtime vagy a klasszikus számítási környezet között. Használd a munkaterület fájlok szerkesztésére, valamint Python szkripteket és jegyzetfüzetek futtatására vagy hibakeresésére, miközben a Python környezeted és a kód végrehajtása a távoli számításon történik. Csatlakozz közvetlenül serverless számítási erőforráshoz, vagy állíts be újrahasználható SSH-kapcsolatot egy dedikált klasszikus klaszterhez.

Requirements

Indítsd el az SSH-kapcsolatot a helyi gépeden. Az alagút nem indítható el más távoli környezetből vagy Docker konténerből.

A szerver nélküli vagy klasszikus számítási környezethez való csatlakozáshoz a következőkkel kell rendelkeznie:

  • A Databricks CLI 1.5.0-s vagy újabb verziója telepítve van a helyi gépen, és a hitelesítés konfigurálva van. Ellenőrizze a telepített verziót a használatával databricks --version. Lásd : A Databricks parancssori felület telepítése vagy frissítése.
  • Az alábbiak bármelyike:
    • Visual Studio Code 1.110.0-s (Universal) vagy újabb verziója, valamint a Remote - SSH kiterjesztés (1.0.46+) telepítése szükséges.
    • Cursor verzió 2.6.11 (Universal) vagy annál magasabb.

A serverless számítási szolgáltatáshoz való csatlakozáshoz engedélyezni kell a serverless számítási szolgáltatás felé irányuló porttovábbítást. Lásd: Porttovábbítás kezelése szerver nélküli számítási környezethez.

A kiszolgáló nélküli GPU-számításhoz való csatlakozáshoz engedélyezni kell az AI Futtatókörnyezet funkciót. Lásd az AI-futtatókörnyezetet.

További követelmények a klasszikus számítási környezetre

Csatlakozás klasszikus (dedikált, egyfelhasználós) számításhoz:

SSH-kapcsolat kiválasztása

Használd a kapcsolódási módszert a számítási erőforrásod típusához:

Compute Kapcsolódási mód Beállítási követelmény
Kiszolgáló nélküli számítás databricks ssh connect Nincs külön SSH beállítási lépés.
IDE indításához adja hozzá a --ide vscode vagy --ide cursor elemet.
AI-futtatókörnyezet databricks ssh connect --accelerator <accelerator> Nincs külön SSH beállítási lépés.
IDE indításához adja hozzá a --ide vscode vagy --ide cursor elemet.
A támogatott gyorsítók esetében lásd --accelerator.
Klasszikus, dedikált, egyfelhasználós számítási kapacitás Futtasd databricks ssh setup --name <connection-name> a terminálban.
Ezután indítsd el az SSH ülést az IDE-ből vagy futtasd ssh <connection-name>.
Válasszon egy dedikált, egyfelhasználós klasztert, amely megfelel a klasszikus számítási követelményeknek.
A megosztott fürtök nem támogatottak.

Az SSH alagút és a Databricks IDE kiterjesztés nem kompatibilis, és nem szabad együtt használni. A Databricks Connecttel és más fejlesztési lehetőségekkel való összehasonlításhoz lásd: Kapcsolódás az IDE-ből.

Csatlakozás kiszolgáló nélküli számításhoz

A fenti követelmények teljesítése után futtasd a databricks ssh connect parancsot a terminálról vagy az IDE-ről.

Az --ide érték kiválasztja az indítandó szerkesztőt, függetlenül attól, hogy melyik szerkesztőből vagy terminálból futtatod a parancsot.

Visual Studio Code

databricks ssh connect --ide vscode

A CLI megnyit egy Visual Studio Code ablakot, amely a távoli számítási erőforráshoz csatlakozik.

Cursor

databricks ssh connect --ide cursor

A CLI megnyit egy Cursor ablakot, amely a távoli számítási környezethez csatlakozik.

Terminal

databricks ssh connect

A CLI interaktív SSH ülést indít.

A parancsopciókért, beleértve az elnevezett kapcsolatokat és a hitelesítési profilokat, lásd: databricks ssh connect.

A csatlakozás után nyisd meg a munkaterületi projektedet, és válaszd ki a Python környezetet. Ha a kapcsolat meghibásodik, lásd: Az SSH alagút kapcsolatok hibaelhárítása.

Csatlakozzon szerver nélküli GPU számításhoz AI Runtime-szal

Az AI Runtime bekapcsolásával adja hozzá a(z) --accelerator elemet a GPU-számítás használatához:

databricks ssh connect --accelerator GPU_1xA10

databricks ssh connect interaktív munkamenetet biztosít egyetlen csomóponton. Hosszú távú képzési feladatok vagy több csomópontos elosztott képzés esetén add be a munkaterhelést helyette databricks air . Lásd : Használd a Databricks CLI-t AI Runtime-val.

Csatlakozás a klasszikus számításhoz

Újrahasználható kapcsolathoz egy klasszikus dedikált klaszterhez állíts be SSH hosztnevet, majd válaszd ki azt az IDE-dben, vagy csatlakozz egy terminálból.

Az SSH-kapcsolat beállítása

Megjegyzés:

Az SSH-kapcsolat beállítása csak akkor szükséges, ha klasszikus számításhoz csatlakozik.

Futtasd a databricks ssh setup parancsot a helyi gépeden. Cserélje le a(z) <connection-name> elemet a kapcsolat nevére, például: my-connection

databricks ssh setup --name <connection-name>

A CLI arra kér, hogy válassz egy klasztert, és hozzáad egy hosztbejegyzést az SSH konfigurációdhoz. Közvetlenül is választhatsz egy klasztert. Cseréld <cluster-id> le a dedikált klasztered azonosítójával:

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

Annak beállításához, hogy mennyi ideig vár az SSH-alagút, miután az utolsó kliens leválik, add hozzá a(z) --shutdown-delay elemet a beállítási parancshoz. Az alapértelmezett érték 10 perc. Például, ha 30 perces késleltetést állítunk be a csatlakozásokhoz ezen az SSH-hostbejegyzésen keresztül:

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

Megjegyzés:

IntelliJ-felhasználók számára a Databricks azt javasolja, hogy a csatlakozás előtt adja hozzá --auto-start-cluster=false a telepítő parancsot, és indítsa el manuálisan a fürtöt. Ennek az az oka, hogy a JetBrains IDE-k indításkor elindítanak minden konfigurált fürtöt, ami váratlan számítástechnikai költségeket eredményezhet.

Csatlakozás a Visual Studio Code vagy a Kurzor használatával

  1. Visual Studio Code esetén telepítse a távoli SSH-bővítményt. A kurzor alapértelmezés szerint tartalmaz egy távoli SSH-bővítményt.

  2. Az IDE főmenüjében kattintson aParancskatalógus>. Válassza a Remote-SSH: Settings (Távoli SSH: Beállítások) lehetőséget. Másik lehetőségként válassza a Beállítások: Felhasználói beállítások megnyitása (JSON) lehetőséget a közvetlen módosításhoz settings.json .

  3. A Remote.SSH: Default Extensions (vagy remote.SSH.defaultExtensions a settings.json), hozzáad ms-Python.Python és ms-toolsai.jupyter.

    Ha módosítja a következőt settings.json:

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

    Megjegyzés:

    Ha szeretné, növelje a Remote.SSH: Connect Timeout (vagy remote.SSH.connectTimeout in settings.json) értékét az időtúllépési hibák esélyének további csökkentése érdekében. Az alapértelmezett időtúllépés 360 másodperc.

  4. A parancskatalógusban válassza a Remote-SSH: Csatlakozás gazdagéphez lehetőséget.

  5. A legördülő menüben válassza ki az első lépésben beállított kapcsolatot. Az IDE egy új ablakban folytatja a csatlakozást.

Csatlakozás IntelliJ IDE-k használatával

  1. A beállításhoz kövesse a távoli kiszolgáló oktatóanyagát .
  2. Az új kapcsolati képernyőn adja meg a következőt:
    • Felhasználónév: root
    • Szerver: <connection-name>

Kapcsolódás klasszikus számítási környezethez terminálból

Használd az általad beállított kapcsolatnevet: databricks ssh setup

ssh <connection-name>

Közvetlen kapcsolathoz újrahasználható SSH-hostbejegyzés nélkül használhatod a CLI-t is. Cseréld <cluster-id> le a dedikált klaszterazonosítóddal:

databricks ssh connect --cluster <cluster-id>

Lásd: databricks ssh connect.

Munkatérprojektek megnyitása SSH-n keresztül

Alapértelmezés szerint a databricks ssh connect parancs egy rövid élettartamú könyvtárba nyílik meg. A munkaterület fájljainak eléréséhez keresse meg a munkaterület könyvtárát az IDE-ből vagy a terminálból:

  • A Visual Studio Code vagy a kurzor parancskatalógusában (Cmd/Ctrl+Shift+P) válassza a Mappa megnyitása lehetőséget, és lépjen a következőre/Workspace/Users/<your-username>.
  • A terminálablakban módosítsa a könyvtárat: cd /Workspace/Users/<your-username>.

Megjegyzés:

A benne lévő /Workspace/Volumesfájlok és /dbfs a fürtök újraindítása során is megmaradnak. A /home, /rootés más helyi elérési utak fájljai rövid élettartamúak, és az újraindításkor elvesznek.

Futtass Python-kódot és notebookokat az SSH-munkamenetben

Válaszd ki az SSH szekciód által biztosított Python környezetet a kód futtatása előtt. A klasszikus számításhoz ez a környezet tartalmazza a beépített Databricks Runtime könyvtárakat és a számítás hatókörű könyvtárakat.

  1. Nyissa meg a parancskatalógust (Cmd/Ctrl+Shift+P), és válassza a Python: Értelmező kiválasztása lehetőséget.

  2. Válassza ki a pythonEnv-xxx virtuális környezetet a listából. Ha a jelölővel --base-environment Python függőségeket állít be, válassza ki a hosszabb virtuális környezet nevét a beállítások listájából. Ha a virtuális környezet nem jelenik meg:

    1. Az IDE-ben található terminálból futtassa a echo $DATABRICKS_VIRTUAL_ENV parancsot.

      Példakimenet: /local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/python

    2. Illessze be a teljes kimenetet értelmezői útvonalként a Python: Értelmező kiválasztása mezőbe.

  3. Nyisson meg egy új terminált, és a virtuális környezetnek automatikusan aktiválnia kell.

  4. Jupyter-jegyzetfüzet futtatásához győződjön meg arról, hogy a virtuális környezet van kiválasztva kernelként. Kattintson a jegyzetfüzet jobb felső sarkában található Kernel kijelölése elemre .

Python fájlok és jegyzetfüzetek futtatása és .ipynb hibakeresése a standard Python és Jupyter-bővítmények használatával.

Ha a Sparkot kiszolgáló nélküli számításon Python fájlban szeretné használni, inicializáljon egy munkamenetet explicit módon:

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

Függőségek kezelése az SSH-munkamenetekhez

Válassz függőségkezelést a számítási környezeted típusához:

  • Szerver nélküli számításhoz használj egy munkaterületi alapkörnyezetet támogatott szerver nélküli környezeti verzióval.
  • Klasszikus számításhoz használj fürtkönyvtárakat olyan függőségekhez, amelyek újraindítások során is fennmaradnak.
  • A projektüléshez tartozó függőségek esetén használj setup notebookot.

A nem Python-csomagokkal kapcsolatban lásd a Nem Python-függőségek részt.

Munkaterületi alapkörnyezetek (kiszolgáló nélküli és AI-futtatókörnyezetekhez ajánlott)

Megjegyzés:

Ehhez a funkcióhoz engedélyezni kell a Kiszolgáló nélküli munkaterület alapkörnyezetének támogatását a Feladatok előzetes verzióban . Lásd: Az Azure Databricks előzetes verziójának kezelése.

A kiszolgáló nélküli környezet 4-es vagy újabb verziójával használjon munkaterületi alapkörnyezetet Python függőségek előzetes konfigurálásához. Az SSH-alagút nem támogatja a(z) --base-environment elemet az 5-ös vagy annál magasabb verziójú szerver nélküli környezettel. Hozzon létre egy alapkörnyezetet a munkaterület felhasználói felületén vagy a Databricks CLI databricks-környezetek create-workspace-base-environment parancsával.

Kapcsolódáskor adja meg a környezetet a(z) --base-environment opcióval:

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

Az --base-environment opció elfogad egy megjelenítő nevet, egy munkaterület YAML útvonalát vagy egy erőforrás-azonosítót. Nem lehet ezzel kombinálni a(z) --cluster elemmel. Lásd: databricks ssh connect.

Fürtkódtárak (klasszikus számításhoz ajánlott)

Telepítse a függőségeket a munkaterület felhasználói felületén a Számítási > kódtárak területen. Ezek a fürt újraindításai között megmaradnak, és elérhetők a következő helyen pythonEnv-xxx: . Lásd Cluster könyvtárak.

Nem Python függőségek

A nem Python függőségek megőrzéséhez használjon egy init szkriptet, amely telepíti a csomagokat a számítás indításakor. Ha szeretné, tárolja a csomagokat egy Unity Catalog-kötetben, és hivatkozzon rájuk az init szkriptből. Lásd: Mik azok az init szkriptek?.

Projektalapú jegyzetfüzet beállítása

Projekthatókörű függőségek esetén futtasson egy parancsokat tartalmazó %pip install jegyzetfüzetet az egyes munkamenetek elején:

# 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 a parancsok közé tartoznak a Databricks-specifikus védőkorlátok, és a függőségek propagálása a Spark-végrehajtó csomópontokra. Ez egyéni függőségekkel rendelkező, felhasználó által definiált függvényeket (UDF-eket) tesz lehetővé.

További példákért lásd: Kódtárak kezelése parancsokkal%pip.

Nem kell újra futtatnod a beállító notebookot, ha az SSH alagút leállása előtt újra csatlakozol. Alapértelmezés szerint az alagút 10 perccel az utolsó kliens leválása után leáll. Ennek a késleltetésnek a megváltoztatásához használd a csatlakozási módodhoz tartozó --shutdown-delay parancsot:

  • Újrahasználható klasszikus számítási kapcsolathoz állítsd be a késleltetést a(z) databricks ssh setup paranccsal. A generált SSH hostbejegyzés késleltetést okoz, amikor az IDE-ről csatlakozol vagy futtatod a(z) ssh <connection-name> parancsot.
  • Közvetlen CLI-kapcsolathoz állítsa be a késleltetést a(z) databricks ssh connect paranccsal.

Megjegyzés:

Ugyanazon a fürtön több SSH-munkamenet osztozik egy virtuális környezetben.

Használd a Gitet SSH-munkamenetben

Fontos

Ez a funkció nyilvános előzetes verzióban van. A munkaterület rendszergazdái az Előnézetek lapon szabályozhatják a Git CLI-támogatáshoz való hozzáférést a Git-mappákhoz. Lásd: Az Azure Databricks előzetes verziójának kezelése.

Használhatod a Git CLI-t az SSH-alagúton keresztül az újonnan létrehozott Git mappákkal és az Azure Databricks-munkaterületen beállított Git-hitelesítő adatokkal. Lásd: Git CLI-parancsok használata.

Ha a CLI a hitelesítő adatok automatikus észlelése helyett hitelesítő adatokat kér be, akkor csatlakoztatnod kell a Git-szolgáltatódat az Azure Databrickshez. Lásd : A Git-szolgáltató csatlakoztatása a Databrickshez.

Tartsd a különálló folyamatokat futva

Alapértelmezés szerint, amikor az SSH-alagút leáll, megállítja az összes folyamatot, amit a munkamenet indított, beleértve azokat is, amelyeket a munkamenetről leválasztottál tmux, setsid vagy nohup. Mielőtt megállítaná őket, az alagút figyelmeztetést naplóz a folyamatazonosítóikkal az alagút feladatának futása kimenetében. databricks ssh connect kiírja a munka futtatási azonosítóját, amikor elindítja az alagutat.

Ahhoz, hogy a leválasztott feladat a lekapcsolódás után is tovább fusson, használd a --keep-detached-processes zászlót. Állítsd be a jelzőt azon a kapcsolaton, amely elindítja az alagutat, mielőtt elkezdenéd a munkát, amit futva akarsz tartani. Lásd Kapcsolódás egy meglévő alagúthoz.

  • Szerver nélküli vagy klasszikus számítás: Add át a jelzőt a databricks ssh connect parancshoz.
  • Klasszikus számítási környezet konfigurált SSH-hoszttal: Add meg a jelzőt a databricks ssh setup parancsnak. A generált SSH host bejegyzés minden csatlakozáskor érvényesül. A serverless kapcsolatok nem igényelnek beállítást, így ez az opció csak a klasszikus számítási környezetre vonatkozik.

A következő példa szervermentes számítási környezetben futtatja a leválasztott folyamatokat:

databricks ssh connect --keep-detached-processes

Az alábbi példa egy dedikált klaszterben futtatja a különálló folyamatokat:

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

Amikor ezt a zászlót használod, és az utolsó kliens leválik, az alagút a következőképpen viselkedik:

  • Az --shutdown-delay időszak után a tunnel ellenőrzi a leválasztott folyamatokat. Amíg bármelyik működik, a tunnel tovább működik, ahelyett, hogy leállna.
  • Az elválasztott folyamatok megtartják a hozzáférésüket a /Volumes-hoz és /Workspace-hoz.
  • Miután az utolsó leválasztott folyamat kilép, a tunnel leáll, és a feladat futása véget ér.

Amíg az alagút továbbra is fut, újra csatlakozhatsz ugyanahhoz a számítási erőforráshoz, és újracsatlakozhatsz a leválasztott munkamenethez, például tmux attach. Kiszolgáló nélküli számítási környezetben ugyanazzal a kapcsolatnévvel csatlakozz újra. Ha kihagyod --name, a CLI a kapcsolat nevét a munkaterületedből és az --accelerator és --base-environment zászlókból származtatja, így bármelyik zászló megváltoztatása külön kapcsolatot indít.

Kapcsolódások egy meglévő alagúthoz

Az alagút üzemmódja indításkor rögzül, és a későbbi kapcsolatok a következőképpen kezelik azt:

  • Ha a flaggel csatlakozol egy tunnelhöz, amely nélküle indult, a CLI új tunnelt indít. Azok a folyamatok, amelyeket a meglévő alagútban leválasztottál, nem maradnak meg, és akkor is leállnak, amikor az alagút leáll. Egy dedikált klaszteren az új alagút azonnal leállítja a meglévőt, ami lezárja a nyitott munkameneteit, és leállítja a leválasztott folyamatait.
  • Ha zászló nélkül csatlakozol egy tunnelhez, amely ezzel a zászlóval indult, a CLI újrahasználja azt a tunnelt, és a tunnel tovább működik, amíg vannak leválasztott folyamatok. Ez a más SSH-hosztbejegyzésekből vagy IDE-munkamenetekből ugyanahhoz a számítási erőforráshoz történő kapcsolatokra is vonatkozik.

Költségek és maximális élettartam

Tartsa szem előtt a következőket:

  • Miközben az alagút folyamatosan működik, a számítási erőforrás tovább működik és költségeket okoz. Egy klasszikus klaszter nem áll le automatikusan. Egy tétlen tmux munkamenet futó leválasztott folyamatnak számít, szóval zárd be, amikor már nincs rá szükséged.
  • A feladat futtatása akkor is megáll, amikor eléri a --server-timeout által beállított maximális élettartamot, még akkor is, ha leválasztott folyamatok futnak. Ez az élettartam attól az időponttól számít, amikor a feladat futása elindul, nem pedig attól, amikor az utolsó kliens megszakítja a kapcsolatot. A feladat futásának leállása után a leválasztott folyamatok elveszítik a hozzáférést a(z) /Volumes és /Workspace elemekhez. Szerver nélküli számítási környezet esetén a leválasztott folyamatok megállnak. Klasszikus számításon azok a hozzáférés nélkül is működhetnek, amíg a klaszter meg nem szűnik. A hosszú ideig futó különálló munka kimenetének megőrzéséhez mentse azt az Azure Databricks SDK-val vagy a REST API-val a(z) /Workspace vagy /Volumes útvonalakra való írás helyett. Lásd : Fájlok használata a Unity-katalógus köteteiben.
  • Hosszabb távú munkához inkább használj jobs vagy csomagokat helyette.

SSH alagút korlátozások

A Databricks által biztosított SSH-alagútra a következő korlátozások vonatkoznak:

  • A megosztott fürtök nem támogatottak.
  • A Databricks IDE kiterjesztés és az SSH alagút még nem kompatibilisek, és nem szabad együtt használni.
  • A /Workspace, /Volumes, és /dbfs kívül szerkesztett fájlok elvesznek a fürt újraindításakor.
  • Fürtönként legfeljebb 10 SSH-kapcsolat engedélyezett.
  • Az inaktív munkamenetek 1 óra elteltével csökkenhetnek.
  • Az SSH-alagút nem indítható el más távoli környezetekből vagy Docker-tárolókból.
  • Teljesítménybeli vagy kapcsolati problémákat tapasztalhat, ha egyszerre három vagy több Jupyter-jegyzetfüzet van megnyitva.

Notebook viselkedése SSH ülésekben

Az SSH-alagút használatakor a jegyzetfüzetek között van néhány különbség:

  • A Python-fájlok nem definiálnak Databricks-globálisokat (például spark vagy dbutils). Ezeket explicit módon kell importálnia a .-val from databricks.sdk.runtime import spark.
  • Az ipynb-jegyzetfüzetek esetében az alábbi funkciók érhetők el:
    • Databricks globális elemek: display, displayHTML, dbutils, table, sql, udf, getArgument, sc, sqlContext, spark
    • %sql varázsutasítás SQL cellák végrehajtásához

Python-forrás "jegyzetfüzetek" használata:

  • Keresse meg jupyter.interactiveWindow.cellMarker.codeRegex és állítsa be a következőre:

    ^# COMMAND ----------|^# Databricks notebook source|^(#\\s*%%|#\\s*\\<codecell\\>|#\\s*In\\[\\d*?\\]|#\\s*In\\[ \\])
    
  • Keresse meg jupyter.interactiveWindow.cellMarker.default és állítsa be a következőre:

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

SSH-alagútkapcsolatok hibaelhárítása

Kezdjük azzal a hibajelenséggel, ami megfelel a hibának:

Tünet Első ellenőrzés
Az SSH-kapcsolat meghibásodik vagy időtúllépés történik. Ellenőrizd a munkaterület HTTPS és WebSocket hozzáférését. Klasszikus számítási környezet esetén nézd meg a klaszter állapotát és az IDE időtúllépését is. Lásd: Az SSH-kapcsolat meghiúsul vagy időtúllépés miatt megszakad.
A CLI azt jelzi, hogy nem találja a(z) code elemet. Telepítsd a Visual Studio Code shellparancsát a helyi PATH-ban. Lásd code parancs nem található.
A CLI-hitelesítés sikertelen. Nézd meg a CLI-profilt, és klasszikus számítási környezethez a klaszterengedélyeket. Lásd : CLI hitelesítési hibák.
A CLI a(z) invalid_grant elemet a(z) Refresh token is invalid használatával jelenti. Jelentkezz be újra a munkaterületre ugyanazzal a CLI profillal, majd próbáld meg újra a kapcsolatot. Lásd: Refresh token is invalid.
A Python-kód vagy a jegyzetfüzetek nem működnek a csatlakozás után. Ellenőrizd a kiválasztott interpretert vagy jegyzetfüzetkernelt. Lásd: Python-kód vagy notebookok nem működnek az SSH-munkamenetben.
A fájlok eltűnnek egy klaszter újraindítása után. Ellenőrizd, hogy a fájlok átmeneti helyi útvonalon voltak-e tárolva. Lásd: Fájlok eltűnnek, vagy a környezet visszaáll a klaszter újraindítása után.

SSH-kapcsolat sikertelen vagy időtúllépés történt

  • Klasszikus számítás esetén ellenőrizd, hogy a klaszter fut-e a munkaterület felhasználói felületén.
  • Ellenőrizd, hogy a hálózatod, a VPN és a tűzfal engedélyezi-e a HTTPS és WebSocket forgalmat a munkaterület domainjére. Az SSH alagút nem használja a 22-es portot. Az összes forgalmat ugyanazon a HTTPS-végponton keresztül továbbítja, mint a többi Databricks CLI-parancs. Lásd: Tartománynév tűzfalszabályainak konfigurálása.
  • Ha egy proxy vagy tűzfal ellenőrzi a TLS forgalmat, ellenőrizd, hogy engedélyezi-e a WebSocket frissítési kérést. Az a közvetítő, amely blokkolja vagy lehúzza a frissítést, a kapcsolat meghibásodását vagy időlejárását okozza. Kérd meg a hálózati adminisztrátorodat, hogy engedélyezze a WebSocket frissítést a munkaterület domainjén, vagy hogy kerülje meg a TLS ellenőrzést az adott domainnél.
  • Ha vállalati HTTP proxyn keresztül csatlakozol, állítsd be a HTTPS_PROXY környezeti változót, vagy NO_PROXY kerüld meg a proxyt a munkaterületi domainedben. Az SSH alagút ugyanazt a proxy-konfigurációt használja, mint más Databricks CLI parancsok. Lásd a Proxy szerver konfigurációt.
  • Ellenőrizd, hogy a helyi gépednek HTTPS hozzáférése van-e a github.com és release-assets.githubusercontent.com.
  • Növelje az SSH időtúllépését. Lásd: Csatlakozás a Visual Studio Code vagy a Kurzor használatával.
  • Kulcseltérési hibák esetén törölje ~/.databricks/ssh-tunnel-keys és futtassa újra az elemet databricks ssh setup.
  • Ha a távoli gazdagép azonosítója megváltozott, ellenőrizze a ~/.ssh/known_hosts fájlt, és törölje a fürthöz kapcsolódó bejegyzéseket.
  • Az SSH-munkamenetek 1 óra elteltével csökkenhetnek, és egyetlen fürthöz legfeljebb 10 SSH-kapcsolat hozható létre. Lásd az SSH alagút korlátozásait.

code Parancs nem található

Ha megjelenik Error: exec: "code": executable file not found in $PATH, nyissa meg a parancskatalógust (Cmd/Ctrl+Shift+P), válassza a Shell Parancs: Kód telepítése a PATH-ban, majd indítsa újra az IDE- vagy terminálmunkamenetet.

CLI hitelesítési hibák

  • Jelentkezz be a munkaterületedbe a(z) databricks auth login paranccsal.
  • Klasszikus számításhoz győződj meg arról, hogy rendelkezel CAN ATTACH TO jogosultsággal a klaszteren, vagy CAN RESTART, ha a klaszter nem fut.

A frissítési token érvénytelen

Ha a(z) databricks ssh connect meghiúsul a(z) invalid_grant, Refresh token is invalid és error getting token esetén, az engedélyezési szerver elutasította a CLI mentett OAuth-frissítési tokenjét. Jelentkezz be újra, hogy új munkamenetet kapj:

  1. Válaszd ki a konfigurációs profilt a munkaterülethez, amelyhez csatlakozni szeretnél:

    databricks auth profiles --skip-validate
    
  2. Jelentkezz be újra azzal a profildal. Cseréld le a(z) <workspace-url> elemet a munkaterület URL-jére, az /oidc/v1/token útvonal nélkül, és a(z) <profile-name> elemet a megfelelő profilnévre cseréld:

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

    Fejezze be a bejelentkezési folyamatot a böngészőben.

  3. Próbáld meg újra ugyanazzal a profillal a kapcsolatot:

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

    Használd a --ide cursor-t a Cursorhoz, vagy hagyd ki a --ide-et terminálmunkamenethez.

Ha a hiba továbbra is fennáll, ellenőrizd, hogy a sikertelen parancs ugyanazt a munkaterületet és profilt célozza-e, amelybe most jelentkeztél be. Lásd: OAuth felhasználó és gép közötti (U2M) hitelesítés.

Python kód vagy notebookok nem működnek az SSH ülés során

Fájlok eltűnnek vagy környezet visszaáll a klaszter újraindítása után

  • A /Workspace, /Volumes és /dbfs csatolmányok megmaradnak a fürt újraindítása során is. A /home, /rootés más helyi elérési utak fájljai rövid élettartamúak, és az újraindításkor elvesznek.
  • Klaszter könyvtárkezelés használata tartós függőségekhez. Szükség esetén init-szkriptekkel automatizálhatja az újratelepítéseket. Lásd: Mik azok az init szkriptek?.

Az SSH beállítása sikertelen Windows (WSL)

Futtassa databricks ssh setup közvetlenül a Windowson, nem pedig a WSL-en belül. A Windows Visual Studio Code példány nem találja a WSL oldalán létrehozott SSH-konfigurációkat.

GYIK

A szerver nélküli számításhoz szükséges SSH-beállítás?

Nem. A Databricks CLI telepítése és hitelesítése után használd a databricks ssh connect parancsot a kiszolgáló nélküli számítási erőforráshoz. A databricks ssh setup parancs újrahasználható SSH hostbejegyzéseket konfigurál klasszikus dedikált számításhoz.

A Databricks SSH alagúthoz szükség van a 22-es portra?

Nem. Az SSH alagút HTTPS-en keresztül továbbítja a forgalmat a munkaterület tartományába, és WebSocket támogatást igényel. A hálózatodnak, a VPN-nek, a tűzfalnak és a proxidnak engednie kell ezt a forgalmat. Lásd: Az SSH-kapcsolat meghiúsul vagy időtúllépés miatt megszakad.

Miben különbözik az SSH-alagút a Databricks Connecttől?

A Databricks Connect lehetővé teszi kód írását Spark API-k használatával, és távolról futtathatja őket a Databricks számítási felületén a helyi Spark-munkamenet helyett. A Databricks Visual Studio Code bővítmény a Databricks Connect használatával biztosítja a felhasználói kód beépített hibakeresését a Databricksen.

Az SSH-alagút lehetővé teszi, hogy hozzáférj a munkaterülethez az IDE-dről, és az egész fejlesztői környezetedet áthelyezi a számítási erőforrásra. Python, a kernel és a kód végrehajtása Azure Databricks-en fut, hozzáféréssel a számítási erőforrásokhoz.

Hogyan védik a kódot és az adatokat?

Az SSH-forgalom végponttól végpontig titkosított, és a kód azon az Azure Databricks számítási erőforráson fut, amelyhez csatlakozol. A hitelesítés a Databricks CLI-t és a konfigurált munkaterületi profilt használja. Lásd Milyen hitelesítési módszerek támogatottak?.

Mely fejlesztői környezetek támogatottak?

Visual Studio Code és a Kurzor hivatalosan támogatott. Az SSH-képességekkel rendelkező IDE-k kompatibilisek, de csak a VS Code és a Kurzor tesztelése történik.

Minden Databricks-jegyzetfüzet-funkció elérhető az IDE-ből?

Néhány funkció, például display()a , dbutilsés %sql korlátozásokkal vagy manuális beállítással érhető el. Lásd: Jegyzetfüzet viselkedése SSH-üzenetekben.

Automatikusan elindul a fürt, amikor az SSH-alagút használatával csatlakozom?

Igen, de ha a fürt elindítása hosszabb időt vesz igénybe, mint a csatlakozási időkorlát, a csatlakozási kísérlet meghiúsul. Annak elkerülése érdekében, hogy időtúllépési hibák forduljanak elő, növelje a Remote.SSH: Csatlakozás időtúllépése értékét a parancskatalógusból (vagy remote.SSH.connectTimeoutsettings.json), így tovább csökkentheti az időtúllépési hibák lehetőségét.

Honnan tudhatom, hogy fut-e a fürt?

Lépjen a Databricks-munkaterület felhasználói felületén található Compute elemre, és ellenőrizze a fürt állapotát. A fürtnek futásban kell lennie az SSH-kapcsolat működéséhez.

Hogyan lehet leválasztani az SSH-/IDE-munkamenetet?

A munkameneteket az IDE-ablak bezárásával, az IDE Leválasztás lehetőségével, az SSH-terminál bezárásával vagy a exit parancs terminálon való futtatásával szakíthatja meg.

Hogyan állíthatom le a klasztert, és hogyan kerülhetem el a díjakat, mikor nem dolgozom?

Ha azonnal le szeretne állni, állítsa le a fürtöt a munkaterület felhasználói felületéről. Lépjen a Databricks-munkaterület felhasználói felületén a Számítás elemre, keresse meg a fürtöt, és kattintson a Leállítás vagy Szolgáltatás megszüntetése gombra.

Állítson be egy rövid automatikus megszüntetési szabályzatot a fürtre a munkaterület felhasználói felületén. A kapcsolat bontása után az SSH alagút megvárja az shutdown-delay időszakot (alapértelmezett: 10 perc), majd a klaszter üresjárati időlejárása érvényesül. Ha használod --keep-detached-processes, a klaszter nem áll le automatikusan, amíg leválasztott folyamatok futnak. Ez azokra a jelző nélküli kapcsolatokra is vonatkozik, amelyek újrahasznosítanak egy ezzel a jelzővel indított alagutat. Lásd Kapcsolódás egy meglévő alagúthoz.

Hogyan kezeljem az állandó függőségeket?

A munkamenet során telepített függőségek elvesznek a fürt újraindítása után. Használjon állandó tárterületet (/Workspace/Users/<your-username>) a követelményekhez és a beállítási szkriptekhez. Klaszterkönyvtárak vagy init-szkriptek használata automatizáláshoz.

Milyen hitelesítési módszerek támogatottak?

A hitelesítés a Databricks CLI-t és a profilokat tartalmazó fájlt ~/.databrickscfg használja. Az SSH-kulcsokat az SSH-alagút kezeli.

Csatlakozhatok külső adatbázisokhoz vagy szolgáltatásokhoz a fürtből?

Igen, mindaddig, amíg a fürt hálózatkezelése engedélyezi a kimenő kapcsolatokat, és megvannak a szükséges könyvtárak.

Használhatok további IDE-bővítményeket?

A legtöbb bővítmény akkor működik, ha telepítve van egy távoli SSH munkamenetre, az IDE-től és a környezettől függően. A Visual Studio Code alapértelmezés szerint nem telepíti a helyi bővítményeket távoli gazdagépekre. A bővítmények manuális telepítéséhez nyissa meg a bővítmények panelt, és engedélyezze a helyi bővítményeket a távoli gazdagépen. A Visual Studio Code-ot úgy is konfigurálhatja, hogy mindig távolról telepítsen bizonyos bővítményeket. Lásd: Csatlakozás a Databrickshez.

Igen, azonban a munkaterület rendszergazdáinak engedélyeznie kell a Visual Studio Code és a kurzorbővítmény-piacterek URL-címeit. A helyi gépnek képesnek kell lennie az internet elérésére is.