Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Fontos
A Databricks SSH-alagút bétaverzióban található.
A Databricks SSH-alagút lehetővé teszi az IDE csatlakoztatását a Databricks-számításhoz. Egyszerűen beállítható, lehetővé teszi a kód interaktív futtatását és hibakeresését a fürtön, csökkenti a környezet eltéréseit, és minden kódot és adatot biztonságosan tart a Databricks-munkaterületen.
Requirements
Az SSH-alagút használatához a következőnek kell lennie:
- A Databricks CLI 0.269-es vagy újabb verziója telepítve van a helyi gépen és a hitelesítés konfigurálva. Lásd Telepítés.
- Számításokat végezhet a Databricks-munkaterületén a dedikált (egyfelhasználós) hozzáférési módban. Lásd a dedikált számítási áttekintést.
- A számításnak a Databricks Runtime 17.0-s vagy újabb verzióját kell használnia.
- 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.
Az SSH-alagút beállítása
Először állítsa be az SSH-alagutat a databricks ssh setup parancs segítségével. Cserélje le a(z) <connection-name> kifejezést az alagút nevére, például a(z) my-tunnel kifejezésre.
databricks ssh setup --name <connection-name>
A parancssori felület arra kéri, hogy válasszon egy fürtöt, vagy megadhat egy fürt azonosító az --cluster <cluster-id> paraméter átadásával.
Megjegyzés:
Az IntelliJ esetében a Databricks azt javasolja, hogy szerepeljen –-auto-start-cluster=false a beállítási parancsban. A JetBrains IDE indítása automatikusan elindítja az összes fürtöt, ami nem tervezett számítási költségeket eredményezhet. Ha ezt a beállítást választja, el kell indítania a fürtöt a munkaterületen az SSH-alagút elindításához.
Csatlakozás a Databrickshez
Ezután csatlakozzon a Databrickshez egy IDE-t vagy terminált használva.
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 egy távoli SSH-bővítményt tartalmaz.
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 alagutat. Az IDE egy új ablakban folytatja a csatlakozást.
Megjegyzés:
Ha a számítási erőforrás nem fut, akkor elindítjuk. Ha azonban a számítás indításának időtúllépése hosszabb időt vesz igénybe, az SSH-kapcsolati kísérlet meghiúsul.
Válassza ki a linuxot , amikor a rendszer kéri a kiszolgáló típusát.
Csatlakozás IntelliJ IDE-k használatával
Az új kapcsolati képernyőn adja meg a következőket:
Felhasználónév:
rootGazdagép:<connection-name>
Csatlakozás terminállal
Ha a Databrickshez szeretne csatlakozni a parancssorból, adja meg a ssh parancsnak a kapcsolat nevét, például:
ssh my-tunnel
Projektek megnyitása
- A kezdeti kapcsolat megnyit egy üres IDE-ablakot anélkül, hogy bármilyen mappa meg lenne nyitva. A Visual Studio Code-ban a ParancskatalógusMappa megnyitása parancsával nyissa meg a kívánt projektet.
- Használja a munkaterület csatolást (
/Workspace/Users/<your-username>) az állandó tároláshoz.
Kód futtatása (Visual Studio Code)
- Ha megnyit egy Python-projektet, a Python-bővítmény automatikusan észleli a virtuális környezeteket, de továbbra is manuálisan kell aktiválnia a megfelelőt. Válassza ki az Értelmező parancsot a Parancskatalógusból, és válassza ki a környezetet
pythonEnv-xxx. Ez hozzáféréssel rendelkezik az összes beépített Databricks Runtime könyvtárhoz, vagy bármihez, amit globálisan telepített a fürtre. - Bizonyos esetekben a Python-bővítmény nem képes automatikusan észlelni a virtuális környezeteket (
venvpéldául amikor olyan mappát nyit meg, amely nem ismerhető fel Python-projektként). A probléma megoldásához nyisson meg egy terminált, és hajtsa végreecho $DATABRICKS_VIRTUAL_ENV, majd másolja ki az elérési utat, és használja a Python: Értelmező kiválasztása parancsban.
A venv kiválasztása után a Python-fájlok vagy jegyzetfüzetek a Python- vagy Jupyter-bővítmények által biztosított normál futtatási vagy hibakeresési műveletekkel végrehajthatók.
Python-függőségek kezelése
A szükséges függőségek telepítésének legegyszerűbb módja a munkaterület felhasználói felületének használata. Lásd Számítási hatókörű könyvtárak. Ezzel a módszerrel globálisan telepít függőségeket a fürt számára. Nem kell újratelepítenie a könyvtárakat, valahányszor a fürt újraindul.
Egy adott projektre hatókörrel rendelkező programozottabb beállításhoz azonban használjon jegyzetfüzet-hatókörű telepítést.
Projektspecifikus beállítási jegyzetfüzet
Egy adott projekt függőségeinek kezelése:
Hozzon létre egy
setup.ipynbfájlt a projektben.Az ssh CLI létrehoz egy Python-környezetet (
pythonEnv-xxx), amely már rendelkezik beépített Databricks-futtatókörnyezeti kódtárakkal vagy számítási hatókörű kódtárakkal. Csatolja a jegyzetfüzetet ehhez apythonEnv-xxxkörnyezethez.A függőségek telepítéséhez használjon
%pip installparancsokat:-
%pip install .ha vanpyproject.toml(%pip install .<group>szűkítésére) -
%pip install -r dependencies.txtha rendelkezikdependencies.txt -
%pip install /Volumes/your/wheel.whl(vagy/Workspaceútvonalak), ha egyéni könyvtárat készített és töltött fel wheelként.
%pipEzek a parancsok Databricks-specifikus logikával rendelkeznek további biztonsági védelmi elemekkel. A logika azt is biztosítja, hogy a függőségek minden Spark-végrehajtó csomópont számára elérhetők legyenek, nem csak a csatlakoztatott illesztőprogram-csomópont számára. Ez egyéni függőségekkel rendelkező, felhasználó által definiált függvényeket (UDF-eket) tesz lehetővé.További használati példákért lásd: Kódtárak kezelése parancsokkal
%pip.-
Futtassa ezt a jegyzetfüzetet minden alkalommal, amikor új ssh-munkamenetet hoz létre. Nem kell újratelepítenie a függőségeket, ha egy meglévő ssh-munkamenet megszakad, de 10 percen belül vissza tud kapcsolódni a fürtre. (Az idő a helyi ssh-konfiguráció beállításával -shutdown-delay=10m konfigurálható.)
Megjegyzés:
Ha egyszerre több ssh-munkamenet is csatlakozik azonos fürthöz, ugyanazt a virtuális környezetet használják.
Korlátozások
A Databricks SSH-alagútra a következő korlátozások vonatkoznak:
- A Visual Studio Code Databricks-bővítménye és a Databricks SSH-alagút még nem kompatibilis, és nem használható együtt.
- A Git CLI- és IDE Git-integrációk nem ismerik fel Git-repositoryként a Databricks munkaterületének felhasználói felületén a munkaterületen létrehozott Git-mappákat, mivel ezek a mappák nem rendelkeznek .git metaadatokkal. Ennek megkerüléséhez lásd: Hogyan használhatom a Gitet az SSH-alagúttal?.
- A fürthöz csatlakozó otthoni és gyökércsatlakozások rövid élettartamúak. A fürt tartalma nem őrződik meg a fürt újraindításakor.
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
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 globals:
display,displayHTML,dbutils,table,sql,udf,getArgument,sc,sqlContext,spark -
%sqlvarázsutasítás SQL cellák végrehajtásához
- Databricks globals:
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
- Győződjön meg arról, hogy a fürt fut a Databricks felhasználói felületén, és nem csak leállt vagy elindult.
- Ellenőrizze, hogy a 22-es kimenő port nyitva van és engedélyezett a laptopon/hálózaton/VPN-en.
- Állítsa magasabbra az SSH-csatlakozás időtúllépését az IDE-ben. Lásd: Csatlakozás a Visual Studio Code vagy a Kurzor használatával.
- Ha a nyilvános vagy titkos kulcsok eltérési hibáit tapasztalja, próbálja meg törölni a
~/.databricks/ssh-tunnel-keysmappát. - Ha megjelenik az "A távoli gazdagép azonosítása megváltozott" hibaüzenet, ellenőrizze a
~/.ssh/known_hostsfájlt, és törölje a fürtjéhez kapcsolódó bejegyzéseket. - Ha az SSH-munkamenet 1 óra elteltével megszakad, ez egy ismert korlátozás. Lásd: Korlátozások.
- Egyetlen fürthöz legfeljebb 10 ssh-kapcsolat engedélyezett.
CLI-hitelesítési hibák
- Győződjön meg arról, hogy a Databricks CLI-profil érvényes és hitelesített (
databricks auth login). - Győződjön meg arról, hogy megfelelő klaszterengedélyekkel rendelkezik, például
CAN MANAGE.
A fájlok eltűnnek, vagy a környezet visszaáll az alapértelmezett állapotba a fürt újraindítása után
- Csak a
/Workspace,/Volumesés/dbfscsatolások állandóak. Az összes adat a/home,/rootstb. elemekben törlődik az újraindítás után. - 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?.
"Nem git-adattár" hiba vagy hiányzó git-funkciók az IDE-ben
A Git csak akkor működik, ha a /Workspace/Users/<your-username>-t a terminált használva klónozza. A webre létrehozott mappák nem rendelkeznek .git metaadatokkal. Lásd : Hogyan használhatom a Gitet az SSH-alagúttal?.
A kód nem működik
- Győződjön meg arról, hogy a megfelelő Python-értelmezőt választja, amely hozzáfér az összes Databricks Runtime-függőséghez.
- Ha megnyit egy Python-projektet, a Python-bővítmény automatikusan észleli a virtuális környezeteket, de továbbra is manuálisan kell aktiválnia a megfelelőt. Hajtsa végre a(z) Python: Az Értelmező kiválasztása parancsot, majd válassza ki a pythonEnv-xxx környezetet. Hozzáfér az összes beépített Databricks Runtime-kódtárhoz, vagy bármihez, amit globálisan telepített a klaszterre.
- Bizonyos esetekben a Python-bővítmény nem képes automatikusan észlelni a virtuális környezeteket, például amikor olyan mappát nyit meg, amely nem ismerhető fel Python-projektként. Megnyithat egy terminált, és végrehajthatja
echo $DATABRICKS_VIRTUAL_ENV, majd kimásolhatja az elérési utat, és használhatja a Python: Értelmező kiválasztása parancsban.
- 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 a Databricks-jegyzetfüzetek eltéréseit.
Nem lehet ssh-kapcsolatot beállítani windowson a WSL alatt
A Databricks azt javasolja, hogy közvetlenül Windows rendszeren végezze el az ssh-beállításokat. Ha a WSL oldalán állítja be, de a Visual Studio Code Windows-verzióját használja, nem találja a szükséges ssh-konfigurációkat.
GYIK
Hogyan védik a kódot és az adatokat?
Minden kód a Databricks felhőbeli virtuális magánfelhőben (VPC) 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?
A Visual Studio Code és a Kurzor hivatalosan támogatott, de a Databricks SSH-alagút kompatibilis bármely IDE-vel, amely SSH-képességekkel rendelkezik.
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.
Egyszerre több felhasználó is fejleszthet ugyanazon a fürtön?
Nem.
Elindul automatikusan a klaszter, amikor SSH-alagúton keresztül 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.
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 a Futás állapotot kell mutatnia ahhoz, hogy az SSH-alagútkapcsolatok működjenek.
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.
Az SSH leválasztása automatikusan leállítja a fürtöt?
Nem, az ssh-kiszolgáló konfigurálható leállítási késleltetéssel rendelkezik, és egy meghatározott ideig továbbra is fut a háttérben (alapértelmezés szerint 10 m, módosítható az ssh config ProxyCommand beállításban a módosítási -shutdown-delay beállítással). Az időtúllépés után a kiszolgáló leáll, ami elindítja a fürt tétlen időtúllépését (amelyet a fürt létrehozásakor konfigurál).
Hogyan állíthatom le a klasztert a felesleges költségek elkerülése érdekében?
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.
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 a Databrick 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.
Hogyan használhatom a Gitet az SSH-alagúttal?
A Databricks munkaterület felhasználói felületén létrehozott Git-mappák jelenleg nem ismerhetők fel git-adattárként a fejlesztői környezetekben. Ennek megkerüléséhez klónozza az adattárakat az SSH-munkamenet git parancssori felületének használatával az állandó munkaterület mappájába:
- Nyisson meg egy terminált, és keresse meg a kívánt szülőkönyvtárat (például
cd /Workspace/Users/<your-username>) - Klónozza az adattárat abban a könyvtárban.
- A Visual Studio Code-ban nyissa meg ezt a mappát egy új ablakban úgy, hogy a felhasználói felületen futtatja
code <repo-name>vagy megnyitja a mappát egy új ablakban.