Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
El desarrollo remoto está en beta.
El desarrollo remoto de Databricks permite acceder al área de trabajo y ejecutar de forma interactiva cargas de trabajo en los recursos de Databricks desde IDEs mediante un túnel SSH. Es fácil de configurar, elimina la necesidad de administración del entorno y mantiene todo el código y los datos seguros en el área de trabajo de Databricks.
Requisitos
Para usar el desarrollo remoto, debe tener:
- La CLI de Databricks, versión 0.269 o posterior, instalada en la máquina local y la autenticación configurada. Consulte Instalación.
- Un clúster dedicado (de usuario único) que ejecuta Databricks Runtime 17.0 o superior. Consulte Descripción general de la computación dedicada. Además:
- El catálogo de Unity debe estar habilitado.
- Si existe una directiva de cómputo, no debe prohibir la ejecución de trabajos.
Configuración de la conexión SSH
En primer lugar, configure el túnel SSH mediante el comando databricks ssh setup. Reemplace <connection-name> por el nombre de la conexión, por ejemplo, my-connection.
databricks ssh setup --name <connection-name>
La CLI le pide que seleccione un clúster. También puede especificar una directamente con --cluster <cluster-id>:
databricks ssh setup --name <connection-name> --cluster <cluster-id>
Nota:
Para los usuarios de IntelliJ, Databricks recomienda agregar --auto-start-cluster=false al comando de instalación e iniciar el clúster manualmente antes de conectarse. Esto se debe a que los IDE de JetBrains inician todos los clústeres configurados al iniciarse, lo que puede dar lugar a cargos de proceso inesperados.
Conexión a Databricks
A continuación, conéctese a Databricks mediante un IDE o un terminal.
Conexión mediante Visual Studio Code o cursor
Para Visual Studio Code, instale la extensión SSH remota. El cursor incluye una extensión SSH remota de forma predeterminada.
En el menú principal del IDE, haga clic en Ver>paleta de comandos. Seleccione Remote-SSH: Settings. Como alternativa, seleccione Preferencias: abra Configuración de usuario (JSON) para modificar
settings.jsondirectamente.En Remote.SSH: Extensiones predeterminadas (o
remote.SSH.defaultExtensionsensettings.json), agreguems-Python.Pythonyms-toolsai.jupyter.Si está modificando
settings.json:"remote.SSH.defaultExtensions": [ "ms-Python.Python", "ms-toolsai.jupyter" ]Nota:
Opcionalmente, aumente el valor de Remote.SSH: Tiempo de espera de conexión (o
remote.SSH.connectTimeoutensettings.json) para reducir aún más la posibilidad de errores de tiempo de espera. El tiempo de espera predeterminado es 360.En la paleta de comandos, seleccione Remote-SSH: Connect to Host (Remote-SSH: Connect to Host).
En la lista desplegable, seleccione la conexión que configuró en el primer paso. El IDE continúa con la conexión en una nueva ventana.
Conexión mediante IDE de IntelliJ
- Siga el tutorial del servidor remoto para configurarlo.
- En la nueva pantalla de conexión, escriba:
-
Nombre de usuario:
root -
Host:
<connection-name>
-
Nombre de usuario:
Conexión mediante terminal
ssh <connection-name>
Abrir proyectos
Después de conectarse, use Abrir carpeta desde la paleta de comandos y vaya a /Workspace/Users/<your-username>.
Nota:
Los archivos de /Workspace, /Volumesy /dbfs se conservan en los reinicios del clúster. Los archivos de /home, /rooty otras rutas de acceso locales son efímeros y se pierden al reiniciar.
Ejecutar código (Visual Studio Code o Cursor)
Para ejecutar código mediante el desarrollo remoto, debe asegurarse de que el entorno virtual de Databricks está configurado. Este entorno incluye todas las bibliotecas de DBR integradas y las bibliotecas de ámbito de proceso.
Ejecute
echo $DATABRICKS_VIRTUAL_ENVdesde un terminal dentro del IDE.Salida de ejemplo:
/local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/pythonAbra la paleta de comandos y elija Python: seleccione Intérprete. Pegue la salida anterior.
Abra un nuevo terminal y el entorno virtual debería activarse automáticamente.
Para ejecutar un Notebook de Jupyter, asegúrese de que el entorno virtual haya sido seleccionado como kernel. Haga clic en Seleccionar Kernel en la esquina superior derecha del cuaderno.
Archivos Python y cuadernos .ipynb se pueden ejecutar y depurar mediante las extensiones estándar de Python y Jupyter.
Administración de dependencias de Python
Las dependencias de Python se pueden administrar globalmente a nivel de clúster o en el ámbito de proyectos individuales utilizando notebooks.
Bibliotecas de clústeres (recomendadas)
Instale las dependencias mediante la interfaz de usuario del entorno de trabajo en Bibliotecas de cómputo>. Estos se conservan en los reinicios del clúster y están disponibles en pythonEnv-xxx. Consulte Bibliotecas de clústeres.
Configuración específica del proyecto del cuaderno
Para las dependencias con ámbito de proyecto, ejecute un cuaderno que contenga %pip install comandos al principio de cada sesió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 Los comandos incluyen límites de protección específicos de Databricks y propagan dependencias a los nodos del ejecutor de Spark. Esto permite funciones definidas por el usuario (UDF) con dependencias personalizadas.
Para obtener más ejemplos, consulte Administración de bibliotecas con %pip comandos.
No es necesario volver a ejecutar el cuaderno si la sesión se vuelve a conectar en un plazo de 10 minutos. Esto se puede configurar mediante -shutdown-delay en la configuración de SSH.
Nota:
Varias sesiones SSH en el mismo clúster comparten un entorno virtual.
Limitaciones
El desarrollo remoto de Databricks tiene las siguientes limitaciones:
- Todavía no se admiten los clústeres compartidos con varios usuarios y sin servidor.
- La extensión de Databricks para Visual Studio Code y el desarrollo remoto aún no son compatibles y no deben usarse conjuntamente.
- Los archivos editados fuera de
/Workspace,/Volumesy/dbfsse pierden al reiniciar el clúster. - Se permiten un máximo de 10 conexiones SSH por clúster.
- Las sesiones inactivas pueden cerrarse después de una hora.
Diferencias entre los notebooks de Databricks
Existen algunas diferencias en los cuadernos al usar el desarrollo remoto:
- Los archivos de Python no definen ningún global de Databricks (como
sparkodbutils). Debe importarlos explícitamente confrom databricks.sdk.runtime import spark. - En el caso de los cuadernos de ipynb, estas características están disponibles:
- Datos globales de Databricks:
display,displayHTML,dbutils,table,sql,udf,getArgument,sc,sqlContext,spark -
%sqlcomando mágico para ejecutar celdas SQL
- Datos globales de Databricks:
Para trabajar con "cuadernos" de origen de Python:
Busque
jupyter.interactiveWindow.cellMarker.codeRegexy establézcalo en:^# COMMAND ----------|^# Databricks notebook source|^(#\\s*%%|#\\s*\\<codecell\\>|#\\s*In\\[\\d*?\\]|#\\s*In\\[ \\])Busque
jupyter.interactiveWindow.cellMarker.defaulty establézcalo en:# COMMAND ----------
Solución de problemas
Esta sección contiene información sobre cómo resolver problemas comunes.
Se produce un error en la conexión SSH o se agota el tiempo de espera
- Compruebe que el clúster se está ejecutando en la interfaz de usuario del área de trabajo.
- Compruebe que el puerto de salida 22 está abierto y permitido en el portátil, la red y la VPN.
- Aumente el tiempo de espera de SSH. Consulte Conexión mediante Visual Studio Code o Cursor.
- Para errores de coincidencia de claves, elimine
~/.databricks/ssh-tunnel-keysy vuelva a ejecutardatabricks ssh setup. - En el caso de errores de "la identificación remota del host ha cambiado", compruebe el archivo
~/.ssh/known_hostsy elimine las entradas relacionadas con el clúster. - Las sesiones SSH pueden quitarse después de 1 hora y no se pueden realizar más de 10 conexiones SSH a un único clúster. Consulte limitaciones de .
Errores de autenticación de la CLI
- Confirme que el perfil de la CLI de Databricks es válido mediante
databricks auth login. - Confirme que tiene
CAN MANAGEpermisos en el clúster.
Mi código no funciona
- Asegúrese de que ha configurado el entorno virtual de Databricks, consulte Run code (Visual Studio Code o Cursor)
- Los cuadernos IPYNB y
*.pylos cuadernos de Databricks tienen acceso a las variables globales de Databricks, pero los archivos Python*.pyno. Consulte Diferencias de cuadernos de Databricks.
Los archivos desaparecen o se restablecen el entorno después del reinicio del clúster
- Los archivos en
/Workspace,/Volumes, y/dbfsmontados se conservan en los reinicios del clúster. Los archivos de/home,/rooty otras rutas de acceso locales son efímeros y se pierden al reiniciar. - Use la administración de bibliotecas de clústeres para las dependencias persistentes. Automatice la reinstalación mediante scripts de inicialización si es necesario. Consulte ¿Qué son los scripts de inicialización?.
Error en la configuración de SSH en Windows (WSL)
Ejecute databricks ssh setup directamente en Windows, no en WSL. La instancia de VS Code de Windows no encuentra configuraciones ssh creadas en el lado de WSL.
Preguntas más frecuentes
¿Cómo es diferente el desarrollo remoto de Databricks Connect?
Databricks Connect permite escribir código mediante las API de Spark y ejecutarlos de forma remota en el proceso de Databricks en lugar de en la sesión local de Spark. La extensión databricks Visual Studio Code usa Databricks Connect para proporcionar depuración integrada del código de usuario en Databricks.
El desarrollo remoto permite acceder al área de trabajo desde el IDE y mover todo el entorno de desarrollo al clúster: Python, kernel y todas las ejecuciones de ejecución en Databricks con acceso completo a los recursos del clúster.
¿Cómo se protegen los datos y el código?
Todo el código se ejecuta en la nube de VPC de Databricks. Ningún dato o código deja el entorno seguro. El tráfico SSH está totalmente cifrado.
¿Qué IDE se admiten?
Visual Studio Code y Cursor son compatibles oficialmente. Cualquier IDE con funcionalidades SSH es compatible, pero solo se prueban VS Code y Cursor.
¿Están disponibles todas las características del cuaderno de Databricks en el IDE?
Algunas características como display(), dbutilsy %sql están disponibles con limitaciones o configuración manual. Consulte Diferencias de cuadernos de Databricks.
¿Se iniciará automáticamente el clúster al conectarse mediante el túnel SSH?
Sí, pero si tarda más tiempo en iniciar el clúster que el tiempo de espera de conexión, se producirá un error en el intento de conexión. Para evitar esto, aumente el valor de Remote.SSH: Tiempo de espera de conexión desde la paleta de comandos (o remote.SSH.connectTimeout en settings.json) para reducir aún más la posibilidad de errores de tiempo de espera.
¿Cómo sé si mi clúster se está ejecutando?
Vaya a Proceso en la interfaz de usuario del área de trabajo de Databricks y compruebe el estado del clúster. El clúster debe mostrar En ejecución para que la conexión SSH funcione.
¿Cómo desconecto mi sesión SSH/IDE?
Para desconectar una sesión, cierre la ventana del IDE, use la opción Desconectar en el IDE, cierre el terminal SSH o ejecute el exit comando en el terminal.
¿Cómo se detiene el clúster y se evitan cargos cuando no estoy trabajando?
Para detenerlo inmediatamente, finalice el clúster desde la interfaz de usuario del área de trabajo. Vaya a Proceso en la interfaz de usuario del área de trabajo de Databricks, busque el clúster y haga clic en Finalizar o Detener.
Establezca una directiva de terminación automática breve en el clúster desde la interfaz de usuario del área de trabajo. Después de desconectar, el servidor SSH espera el shutdown-delay período (valor predeterminado: 10 minutos), y después se aplica el tiempo de espera de inactividad del clúster.
¿Cómo debo controlar las dependencias persistentes?
Las dependencias instaladas durante una sesión se pierden después del reinicio del clúster. Use el almacenamiento persistente (/Workspace/Users/<your-username>) para los requisitos y los scripts de configuración. Use bibliotecas de clústeres o scripts de inicialización para la automatización.
¿Qué métodos de autenticación se admiten?
La autenticación utiliza la CLI de Databricks y el archivo de configuración de perfiles ~/.databrickscfg. Las claves SSH se controlan mediante el desarrollo remoto de Databrick.
¿Puedo conectarme a bases de datos o servicios externos desde el clúster?
Sí, siempre que la red de clústeres permita conexiones salientes y tenga las bibliotecas necesarias.
¿Puedo usar extensiones de IDE adicionales?
La mayoría de las extensiones funcionan cuando se instalan dentro de la sesión de SSH remota, en función del IDE y el clúster. Visual Studio Code de forma predeterminada no instala extensiones locales en hosts remotos. Puede instalarlos manualmente abriendo el panel de extensiones y habilitando las extensiones locales en el host remoto. También puede configurar Visual Studio Code para instalar siempre determinadas extensiones de forma remota. Consulte Conexión a Databricks.
¿El desarrollo remoto admite Private Link?
Sí, sin embargo, los administradores del área de trabajo deben permitir las direcciones URL de los marketplaces de extensiones de VS Code y Cursor. Las máquinas locales de los usuarios también deben tener la capacidad de acceder a Internet.