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

Fontos

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

A Databricks által biztosított SSH alagút lehetővé teszi, hogy hozzáférj a munkaterületedhez, és interaktívan futtatd a munkaterheléseket Databricks számításán IDE-kből, egy SSH (Secure Shell) alagúton keresztül. Egyszerűen beállítható, szükségtelenné teszi a környezetkezelést, és minden kódot és adatot biztonságosan tart a Databricks-munkaterületen.

Requirements

Ha az SSH-alagutat kiszolgáló nélküli vagy klasszikus Databricks-számításhoz szeretné használni, a következőkkel kell rendelkeznie:

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.

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

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

A kiszolgáló nélküli számításhoz való csatlakozáshoz futtassa a parancsot egy databricks ssh connect terminálból az IDE-ben. Nincs szükség külön beállítási lépésre.

A parancsról további információt a databricks ssh connectparancscsoportban találssh.

databricks ssh connect

--accelerator A következő beállítással csatlakozhat az AI-futtatókörnyezethez:

databricks ssh connect --accelerator=GPU_1xA10

databricks ssh connect interaktív munkamenetet biztosít egyetlen csomóponton. Hosszú ideig futó betanítási feladatokhoz vagy többcsomópontos elosztott betanításhoz küldje el helyette a számítási feladatot a parancssori air felülettel. Lásd : AI Runtime CLI.

A csatlakozás után fejezze be a fejlesztési környezet beállítását. Lásd: Projektek megnyitása.

A kiszolgáló nélküli számításhoz való csatlakozáshoz és a munkamenet Visual Studio Code vagy kurzor használatával történő elindításához használja a --ide lehetőséget. A parancssori felület megnyit egy IDE ablakot, amely a kezdőlap-munkaterület mappára mutat.

databricks ssh connect --ide=vscode

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

A klasszikus számításhoz való csatlakozáshoz először állítsa be az SSH-kapcsolatot, majd csatlakozzon az IDE használatával vagy a terminálró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.

Először állítsa be az SSH-alagutat a databricks ssh setup parancs segítségével. Adjon nevet a kapcsolatnak, például cserélje le <connection-name> a következőre my-connection:

databricks ssh setup --name <connection-name>

A CLI megkéri, hogy válasszon ki egy fürtöt. Közvetlenül a következőkkel --cluster <cluster-id>is megadhat egyet:

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

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>

Csatlakozás terminállal

ssh <connection-name>

Projektek megnyitása

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.

Futtatási kód (Visual Studio Code vagy kurzor)

Az SSH-alagút használatával történő kódfuttatáshoz be kell állítani a Databricks virtuális környezetet. Ez a környezet tartalmazza az összes beépített DBR-kódtárat és számítási hatókörű kódtárat.

  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

Függőségek kezelése munkaterületi alapkörnyezet, fürttárak, init-szkriptek vagy jegyzetfüzetek használatával, a számítási típustól és a követelményektől függően.

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. 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 elfogadott formátumokról további információt a databricks ssh connectben talál.

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.

Ha a munkamenet 10 percen belül újracsatlakozik, nem kell újra futtatnia a jegyzetfüzetet. Ez az SSH-konfigurációban beállítható -shutdown-delay.

Megjegyzés:

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

A Git használata

Megjegyzés:

Ehhez a funkcióhoz engedélyezni kell a Git-mappák előzetes verziójának Git CLI-támogatását . Lásd: Az Azure Databricks előzetes verziójának kezelése.

Az SSH-alagútban található Git CLI-t használhatja az újonnan létrehozott Git-mappákkal és a Databricks-munkaterületen konfigurált Git-hitelesítő adatokkal. Lásd: Git CLI-parancsok használata.

Ha a parancssori felület hitelesítő adatokat kér ahelyett, hogy automatikusan felveszi őket, a Git-szolgáltatót a Databrickshez kell csatlakoztatnia. Lásd : A Git-szolgáltató csatlakoztatása a Databrickshez.

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. Ezt a korlátozást egy későbbi kiadásban fogjuk kezelni.

A Databricks Notebooks különbségei

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 ----------
    

Hibaelhárítás

Ez a szakasz a gyakori problémák megoldásával kapcsolatos információkat tartalmaz.

Az SSH-kapcsolat meghiúsul vagy túllépi az időkorlátot

  • Ellenőrizze, hogy a fürt 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: Korlátozások.

Az 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

  • Ellenőrizze, hogy a Databricks CLI-profil érvényes-e a databricks auth login használatával.
  • Győződjön meg arról, hogy rendelkezik CAN MANAGE a fürtre vonatkozó engedélyekkel.

A kód nem működik

A fájlok eltűnnek, vagy a környezet visszaáll az alapértelmezett állapotba a fürt ú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

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 a munkaterület elérését az IDE-ből, és a teljes fejlesztői környezetet a számításba helyezi át – Python, kernel és minden végrehajtás a Databricksen fut, teljes hozzáféréssel a számítási erőforrásokhoz.

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

Minden kód a Databricks felhőbeli VPC-n belül fut. Egyetlen adat vagy kód sem hagyhatja el a biztonságos környezetet. Az SSH-forgalom teljes mértékben titkosítva van.

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 a Databricks-jegyzetfüzetek eltéréseit.

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 leválasztást követően az SSH-kiszolgáló vár az shutdown-delay időszakra (alapértelmezés: 10 perc), majd lép érvénybe a fürt tétlenségi időtúllépése.

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.