Ejecución de comandos de shell en el terminal web de Azure Databricks
El terminal web de Azure Databricks proporciona una manera cómoda e muy interactiva de ejecutar comandos de shell en una interfaz de línea de comandos (CLI), incluidos los comandos de la CLI de Databricks, para realizar acciones en objetos de Databricks mediante programación. Es especialmente útil para casos de uso avanzados, como las operaciones por lotes en varios archivos, que las interfaces de usuario (UI) existentes podrían no admitir totalmente.
Muchos usuarios pueden usar el terminal web en un solo proceso.
Puede usar el terminal web para hacer lo siguiente:
- Realizar modificaciones rápidas de archivos con Vim o Emacs.
- Supervisar el uso de recursos con comandos como
htop
(uso del clúster) onvidia-smi
(uso de GPU). - Ejecutar scripts de Python que no son de Spark.
- Ejecutar operaciones de archivo con comandos de shell como
mv
ymkdir
. - Instalar y administrar bibliotecas en proceso.
- Use la CLI de Databricks para automatizar varios aspectos de Azure Databricks.
Requisitos
Advertencia
Azure Databricks proxies el servicio de terminal web desde el puerto 7681 en el controlador Spark de proceso. Este proxy web está pensado para su uso exclusivo con el terminal web. Si el puerto está ocupado cuando se inicia el proceso o si hay otro conflicto, es posible que el terminal web no funcione según lo previsto. Si se inician otros servicios web en el puerto 7681, los usuarios de proceso pueden exponerse a posibles vulnerabilidades de seguridad. Ni Databricks ni Microsoft son responsables de ningún problema resultante de la instalación de software no admitido en un proceso.
- El terminal web está deshabilitado de manera predeterminada para todos los usuarios del área de trabajo. Para habilitarlo, consulte Habilitación del terminal web.
- PERMISO CAN ATTACH TO en un proceso.
- El proceso debe usar un modo de acceso de Usuario único o de Sin aislamiento compartido.
Inicio del terminal web
Puede iniciar el terminal web desde la página de detalles de proceso o desde un cuaderno.
Desde un cuaderno
Para iniciar el terminal web desde un cuaderno:
- Conecte el cuaderno al proceso.
- En la parte inferior de la barra lateral derecha del cuaderno, haga clic en el icono Abrir panel inferior.
- Como alternativa, haga clic en la lista desplegable proceso asociado, mantenga el puntero sobre el proceso conectado y a continuación, haga clic en Terminal web.
El terminal web se abre en un panel en la parte inferior de la pantalla. Los botones situados en la esquina superior derecha del panel le permiten:
- Abra una nueva sesión de terminal en una nueva pestaña .
- Recargue una sesión de terminal .
- Cierre el panel inferior . Para volver a abrir el panel, haga clic en en la parte inferior de la barra lateral derecha.
En la página de detalles del proceso
Para iniciar el terminal web desde la página de detalles del proceso:
- En la barra lateral del área de trabajo, haga clic en Proceso.
- En la pestaña Proceso multiuso, haga clic en el nombre del proceso.
- Haga clic en Iniciar para iniciar el proceso.
- En la pestaña Aplicaciones, haga clic en Terminal web.
Se abre una nueva pestaña con la UI del terminal web y el símbolo del sistema de Bash.
Use una terminal web
En el terminal web, puede ejecutar comandos desde la raíz dentro del contenedor del nodo del controlador de proceso.
Cada usuario puede tener hasta 100 sesiones de terminal web activas (pestañas) abiertas. Las sesiones de terminal web inactivas pueden agotar su tiempo de espera, y la aplicación web del terminal web se volverá a conectar, lo que da lugar a un nuevo proceso de shell. Si desea mantener la sesión de Bash, Databricks recomienda usar tmux.
Ejecución de comandos de la CLI de Databricks
También puede usar el terminal web para ejecutar comandos de la CLI de Databricks. La versión de la CLI disponible siempre es la más reciente y la autenticación se basa en el usuario actual. El proceso debe cumplir los siguientes requisitos:
- El clúster debe tener instalado Databricks Runtime 15.0 o superior.
- El área de trabajo no debe estar habilitada para Private Link.
Inicie el terminal web y ejecute el siguiente comando para generar información sobre el usuario actual:
databricks current-user me
Los comandos de agrupación también están disponibles, lo que le permite crear y administrar los conjuntos de recursos de Databricks directamente desde el terminal web dentro del área de trabajo de Databricks. Por ejemplo, para crear, implementar y ejecutar un paquete sencillo mediante la plantilla predeterminada:
Desde la raíz del terminal web, vaya a la página principal del área de trabajo y ejecute
bundle init
:cd /Workspace/Users/someone@example.com databricks bundle init
Acepte las solicitudes de plantilla predeterminadas y, a continuación, cambie al directorio de agrupación e impleméntela:
cd my_project databricks bundle deploy
Puede ver la agrupación de
my_project
implementada en la interfaz de usuario del área de trabajo de Databricks.Por último, ejecute el trabajo predeterminado en la agrupación:
databricks bundle run my_project_job
Vaya a ejecuciones de trabajos para ver el trabajo en ejecución.
Limitaciones
Azure Databricks no admite la ejecución de trabajos de Spark desde el terminal web.
El terminal web de Azure Databricks no está disponible en los siguientes tipos de proceso:
- Proceso de trabajo
- Proceso sin servidor
- Proceso iniciado con el conjunto de variables de entorno
DISABLE_WEB_TERMINAL=true
. - Proceso iniciado con modo de acceso establecido en Compartido.
- Proceso iniciado con la configuración de Spark
spark.databricks.pyspark.enableProcessIsolation
establecida entrue
.
Hay un límite máximo de 12 horas desde que se carga la página inicial, después de lo cual se finalizará cualquier conexión, incluso si está activa. Puede actualizar el terminal web para volver a conectarse. Databricks recomienda usar tmux para conservar la sesión del shell.
Los recursos de proceso de ARM no pueden usar terminales web para acceder a los archivos del área de trabajo, incluidos los archivos en las carpetas de Git.
Al habilitar los Servicios del contenedor Docker, se deshabilita el terminal web.