Databricks Fjärrutveckling

Viktigt!

Fjärrutveckling finns i Beta.

Med Databricks Remote Development kan du komma åt din arbetsyta och interaktivt köra arbetsbelastningar på Databricks-beräkning från IDE:er med hjälp av en SSH-tunnel. Det är enkelt att konfigurera, eliminerar behovet av miljöhantering och håller all kod och alla data säkra på din Databricks-arbetsyta.

Kravspecifikation

Om du vill använda fjärrutveckling måste du ha:

  • Databricks CLI version 0.269 eller senare installerat på din lokala dator och autentisering konfigurerad. Se Installera.
  • Ett dedikerat kluster (en användare) som kör Databricks Runtime 17.0 eller senare. Se Översikt över dedikerad beräkning. Dessutom:
    • Unity-katalogen måste vara aktiverad.
    • Om det finns en beräkningspolicy får den inte förbjuda exekvering av jobb.

Konfigurera SSH-anslutningen

Konfigurera först SSH-tunneln med hjälp av konfigurationskommandot för databricks ssh . Ersätt <connection-name> med namnet på anslutningen, till exempel my-connection.

databricks ssh setup --name <connection-name>

CLI uppmanar dig att välja ett kluster. Du kan också ange en direkt med --cluster <cluster-id>:

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

Anmärkning

För IntelliJ-användare rekommenderar Databricks att du lägger --auto-start-cluster=false till i installationskommandot och startar klustret manuellt innan du ansluter. Det beror på att JetBrains IDE:er startar alla konfigurerade kluster vid lansering, vilket kan resultera i oväntade databehandlingskostnader.

Ansluta till Databricks

Anslut sedan till Databricks med hjälp av en IDE eller terminal.

Ansluta med hjälp av Visual Studio Code eller Cursor

  1. Installera Remote SSH-tillägget för Visual Studio Code. Markören innehåller ett SSH-fjärrtillägg som standard.

  2. I huvudmenyn för IDE klickar du på Visa>kommandopalett. Välj Fjärr-SSH: Inställningar. Du kan också välja Inställningar: Öppna användarinställningar (JSON) för att ändra settings.json direkt.

  3. Under Remote.SSH: Standardtillägg (eller remote.SSH.defaultExtensions i settings.json) lägger du till ms-Python.Python och ms-toolsai.jupyter.

    Om du ändrar settings.json:

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

    Anmärkning

    Du kan också öka värdet för Remote.SSH: Connect Timeout (eller remote.SSH.connectTimeout i settings.json) för att ytterligare minska risken för timeout-fel. Standardtimeouten är 360.

  4. I kommandopaletten väljer du Fjärr-SSH: Anslut till värd.

  5. I listrutan väljer du den anslutning som du konfigurerade i det första steget. IDE fortsätter att ansluta i ett nytt fönster.

Ansluta med IntelliJ-IDE:er

  1. Följ Fjärrservertutorial för att komma igång.
  2. På den nya anslutningsskärmen anger du:
    • Användarnamn: root
    • Värd: <connection-name>

Ansluta med terminalen

ssh <connection-name>

Öppna projekt

När du har anslutit använder du Öppna mapp från kommandopaletten och navigerar till /Workspace/Users/<your-username>.

Anmärkning

Filer i /Workspace, /Volumesoch /dbfs sparas mellan klusteromstarter. Filer i /home, /rootoch andra lokala sökvägar är tillfälliga och förlorade vid omstart.

Kör kod (Visual Studio Code eller markör)

Om du vill köra kod med fjärrutveckling måste du se till att den virtuella Databricks-miljön har konfigurerats. Den här miljön innehåller alla inbyggda DBR-bibliotek och bibliotek med beräkningsomfång.

  1. Kör echo $DATABRICKS_VIRTUAL_ENV från en terminal i IDE.

    Exempel på utdata: /local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/python

  2. Öppna kommandopaletten och välj Python: Välj Tolk. Klistra in utdata från ovan.

  3. Öppna en ny terminal och den virtuella miljön ska aktiveras automatiskt.

  4. Om du vill köra en Jupyter-notebook-fil kontrollerar du att den virtuella miljön har valts som kernel. Klicka på Välj Kernel längst upp till höger i notebooken.

Python-filer och .ipynb notebookar kan köras och felsökas med standardtilläggen Python och Jupyter.

Hantera Python-beroenden

Python beroenden kan hanteras globalt på klusternivå eller begränsas till enskilda projekt med hjälp av notebook-filer.

Installera beroenden via arbetsytans användargränssnitt under Beräkningsbibliotek>. Dessa bevaras mellan klusteromstarter och är tillgängliga i pythonEnv-xxx. Se Klusterbibliotek.

Installation av projektanpassad anteckningsbok

För beroenden med projektomfattning kör du en notebook-fil som innehåller %pip install kommandon i början av varje session:

# 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 kommandon inkluderar Databricks-specifika skyddsräcken och sprider beroenden till Spark-körnoder. Detta möjliggör användardefinierade funktioner (UDF: er) med anpassade beroenden.

Fler exempel finns i Hantera bibliotek med %pip kommandon.

Du behöver inte köra anteckningsboken igen om sessionen återansluts inom 10 minuter. Detta kan konfigureras med hjälp av -shutdown-delay i SSH-konfigurationen.

Anmärkning

Flera SSH-sessioner i samma kluster delar en virtuell miljö.

Begränsningar

Databricks Remote Development har följande begränsningar:

  • Delade kluster med flera användare och serverlösa stöds ännu inte.
  • Databricks-tillägget för Visual Studio Code och fjärrutveckling är ännu inte kompatibelt och bör inte användas tillsammans.
  • Filer som redigeras utanför /Workspace, /Volumesoch /dbfs går förlorade vid omstart av kluster.
  • Högst 10 SSH-anslutningar tillåts per kluster.
  • Inaktiva sessioner kan avbrytas efter 1 timme.

Skillnader i Databricks Notebooks

Det finns vissa skillnader i notebook-filer när du använder Fjärrutveckling:

  • Python-filer definierar inte några Databricks-globaler (som spark eller dbutils). Du måste importera dem explicit med from databricks.sdk.runtime import spark.
  • För ipynb-anteckningsböcker är dessa funktioner tillgängliga:
    • Databricks globals: display, displayHTML, dbutils, table, sql, udf, getArgument, sc, sqlContext, spark
    • %sql magiskt kommando för att köra SQL-celler

Så här arbetar du med "notebooks" i Python-källkod:

  • Sök jupyter.interactiveWindow.cellMarker.codeRegex efter och ställ in den på:

    ^# COMMAND ----------|^# Databricks notebook source|^(#\\s*%%|#\\s*\\<codecell\\>|#\\s*In\\[\\d*?\\]|#\\s*In\\[ \\])
    
  • Sök jupyter.interactiveWindow.cellMarker.default efter och ställ in den på:

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

Felsökning

Det här avsnittet innehåller information om hur du löser vanliga problem.

SSH-anslutningen misslyckas eller överskrider tidsgränsen

  • Kontrollera att klustret körs i arbetsytans användargränssnitt.
  • Kontrollera att utgående port 22 är öppen och tillåten på din bärbara dator, nätverk och VPN.
  • Öka SSH-tidsgränsen. Se Ansluta med Visual Studio Code eller Cursor.
  • För felmatchningar av nycklar, ta bort ~/.databricks/ssh-tunnel-keys och kör databricks ssh setup om.
  • Om felen "fjärrvärdsidentifiering har ändrats" kontrollera ~/.ssh/known_hosts-filen och ta bort poster som är relaterade till klustret.
  • SSH-sessioner kan släppas efter 1 timme och högst 10 SSH-anslutningar kan göras till ett enda kluster. Se Begränsningar.

CLI-autentiseringsfel

  • Bekräfta att din Databricks CLI-profil är giltig med .databricks auth login
  • Bekräfta att du har CAN MANAGE behörigheter för klustret.

Min kod fungerar inte

Filer försvinner eller miljön återställs efter omstart av klustret

  • Filer i /Workspace, /Volumes och /dbfs monteringar bevaras mellan klusteromstarter. Filer i /home, /rootoch andra lokala sökvägar är tillfälliga och förlorade vid omstart.
  • Använd klusterbibliotekshantering för beständiga beroenden. Automatisera ominstallationer med init-skript om det behövs. Se Vad är init-skript?.

SSH-installationen misslyckas på Windows (WSL)

Kör databricks ssh setup direkt på Windows, inte inom WSL. Den Windows VS Code-instansen kan inte hitta SSH-konfigurationer som skapats på WSL-sidan.

Vanliga frågor

Hur skiljer sig fjärrutveckling från Databricks Connect?

Med Databricks Connect kan du skriva kod med spark-API:er och köra dem via fjärranslutning på Databricks-beräkning i stället för i den lokala Spark-sessionen. Databricks Visual Studio Code-tillägget använder Databricks Connect för att tillhandahålla inbyggd felsökning av användarkod på Databricks.

Med fjärrutveckling kan du komma åt arbetsytan från din IDE och flytta hela utvecklingsmiljön till klustret – Python, kernel och alla körningskörningar på Databricks med fullständig åtkomst till klusterresurser.

Hur skyddas min kod och mina data?

All kod körs i databricks cloud VPC. Inga data eller kod lämnar din säkra miljö. SSH-trafiken är helt krypterad.

Vilka IDE:er stöds?

Visual Studio Code och Markören stöds officiellt. Alla IDE-funktioner med SSH är kompatibla, men endast VS Code och Cursor testas.

Är alla databricks notebook-funktioner tillgängliga från IDE?

Vissa funktioner som display(), dbutilsoch %sql är tillgängliga med begränsningar eller manuell konfiguration. Se Skillnader i Databricks Notebooks.

Startar mitt kluster automatiskt när jag ansluter med SSH-tunneln?

Ja, men om det tar längre tid att starta klustret än tidsgränsen för anslutningen misslyckas anslutningsförsöket. För att förhindra detta ökar du värdet för Remote.SSH: Connect Timeout från kommandopaletten (eller remote.SSH.connectTimeout i settings.json) för att ytterligare minska risken för timeout-fel.

Hur vet jag om mitt kluster körs?

Gå till Beräkning i databricks-arbetsytans användargränssnitt och kontrollera statusen för klustret. Klustret måste visa Kör för att SSH-anslutningen ska fungera.

Hur kopplar jag från min SSH/IDE-session?

Du kan koppla från en session genom att stänga IDE-fönstret med alternativet Koppla från i din IDE, stänga SSH-terminalen eller köra exit kommandot i terminalen.

Hur stoppar jag klustret och undviker avgifter när jag inte arbetar?

Avsluta klustret från arbetsytans användargränssnitt om du vill sluta omedelbart. Gå till Beräkning i användargränssnittet för Databricks-arbetsytan, leta reda på klustret och klicka på Avsluta eller Stoppa.

Ange en kort princip för automatisk avslutning i klustret från arbetsytans användargränssnitt. När du har kopplat bort väntar SSH-servern under shutdown-delay perioden (standard: 10 minuter), och därefter tillämpas klustrets tidsgräns för inaktivitet.

Hur ska jag hantera beständiga beroenden?

Beroenden som installeras under en session går förlorade efter omstart av klustret. Använd beständig lagring (/Workspace/Users/<your-username>) för krav och konfigurationsskript. Använd klusterbibliotek eller init-skript för automatisering.

Vilka autentiseringsmetoder stöds?

Autentiseringen använder Databricks CLI och profilfilen ~/.databrickscfg . SSH-nycklar hanteras av Databrick Remote Development.

Kan jag ansluta till externa databaser eller tjänster från klustret?

Ja, så länge klustrets nätverk tillåter utgående anslutningar och du har de bibliotek som krävs.

Kan jag använda ytterligare IDE-tillägg?

De flesta tillägg fungerar när de installeras i din fjärranslutna SSH-session, beroende på din IDE och ditt kluster. Visual Studio Code installerar som standard inte lokala tillägg på fjärrvärdar. Du kan installera dem manuellt genom att öppna tilläggspanelen och aktivera dina lokala tillägg på fjärrvärden. Du kan också konfigurera Visual Studio Code för att alltid installera vissa tillägg via fjärranslutning. Se Ansluta till Databricks.

Ja, men arbetsyteadministratörer måste tillåtalist-URL:er för VS Code- och Cursor-tilläggsmarknadsplatser. Användarnas lokala datorer måste också ha möjlighet att komma åt Internet.