Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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:
- A számításnak a Databricks Runtime 17.0-s vagy újabb verzióját kell futtatnia. Lásd a dedikált számítási áttekintést.
- A Unity-katalógust engedélyezni kell.
- Ha létezik számítási szabályzat, nem tilthatja meg a feladatok végrehajtását.
- Ha a Databricks Container Servicest dedikált számításhoz használja, a Docker-rendszerképnek telepítve kell lennie
openssh-server.
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
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.
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.A Remote.SSH: Default Extensions (vagy
remote.SSH.defaultExtensionsasettings.json), hozzáadms-Python.Pythonésms-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.connectTimeoutinsettings.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.A parancskatalógusban válassza a Remote-SSH: Csatlakozás gazdagéphez lehetőséget.
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
- A beállításhoz kövesse a távoli kiszolgáló oktatóanyagát .
- Az új kapcsolati képernyőn adja meg a következőt:
-
Felhasználónév:
root -
Szerver:
<connection-name>
-
Felhasználónév:
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.
Nyissa meg a parancskatalógust (Cmd/Ctrl+Shift+P), és válassza a Python: Értelmező kiválasztása lehetőséget.
Válassza ki a
pythonEnv-xxxvirtuális környezetet a listából. Ha a jelölővel--base-environmentPython 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:Az IDE-ben található terminálból futtassa a
echo $DATABRICKS_VIRTUAL_ENVparancsot.Példakimenet:
/local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/pythonIllessze be a teljes kimenetet értelmezői útvonalként a Python: Értelmező kiválasztása mezőbe.
Nyisson meg egy új terminált, és a virtuális környezetnek automatikusan aktiválnia kell.
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-delayidő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
tmuxmunkamenet 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/Workspaceelemekhez. 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)/Workspacevagy/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/dbfskí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
sparkvagydbutils). Ezeket explicit módon kell importálnia a .-valfrom 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 -
%sqlvarázsutasítás SQL cellák végrehajtásához
- Databricks globális elemek:
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_PROXYkörnyezeti változót, vagyNO_PROXYkerü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ésrelease-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 elemetdatabricks ssh setup. - Ha a távoli gazdagép azonosítója megváltozott, ellenőrizze a
~/.ssh/known_hostsfá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 TOjogosultsággal a klaszteren, vagyCAN 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:
Válaszd ki a konfigurációs profilt a munkaterülethez, amelyhez csatlakozni szeretnél:
databricks auth profiles --skip-validateJelentkezz 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.
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
- Válaszd ki az SSH session által biztosított Python környezetet. Egy notebookhoz válaszd ki ezt a környezetet kernelnek. Lásd: Python és jegyzetfüzetek futtatása az SSH-munkamenetben.
- Az IPYNB-jegyzetfüzetek és
*.pya Databricks-jegyzetfüzetek hozzáférnek a Databricks globális fájljaihoz, a Python-fájlok*.pyazonban nem. Lásd: Jegyzetfüzet viselkedése SSH-üzenetekben.
Fájlok eltűnnek vagy környezet visszaáll a klaszter újraindítása után
- A
/Workspace,/Volumesés/dbfscsatolmá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.
Támogatja az SSH-alagút a Private Link?
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.