Uso de scripts de inicialización con ámbito de clúster

Los scripts de inicialización de ámbito de clúster son scripts de inicialización definidos en una configuración de clúster. Los scripts de inicialización de ámbito de clúster se aplican tanto a los clústeres que crea el usuario como a los que se crean para ejecutar trabajos.

Puede configurar scripts de inicialización de ámbito de clúster con la interfaz de usuario, la CLI y mediante la invocación de la API Clusters. Esta sección se centra en la realización de estas tareas desde la interfaz de usuario. Para los demás métodos, consulte la CLI de Databricks y la API de clústeres.

Puede agregar cualquier número de scripts y se ejecutan secuencialmente en el orden proporcionado.

Si un script de inicialización de ámbito de clúster devuelve un código de salida distinto de cero, se produce un error al iniciar el clúster. Para solucionar problemas con los scripts de inicialización con ámbito de clúster, puede configurar la entrega de registros de clúster y examinar el registro del script de inicialización. Consulte Registro de script de inicialización.

Configuración de un script de inicialización de ámbito de clúster mediante la interfaz de usuario

Esta sección contiene instrucciones para configurar un clúster para ejecutar un script de inicialización mediante la interfaz de usuario de Azure Databricks.

Databricks recomienda administrar todos los scripts de inicialización como scripts de inicialización con ámbito de clúster. Si usa proceso con el modo de acceso compartido o de usuario único, almacene scripts de inicialización en volúmenes del catálogo de Unity. Si va a usar el proceso con el modo de acceso compartido sin aislamiento, utilice archivos del área de trabajo para los scripts de inicialización.

En el modo de acceso compartido, debe agregar scripts de inicialización a allowlist. Consulte Agregar a la lista de permitidos bibliotecas y scripts de inicialización en proceso compartido.

Para usar la interfaz de usuario para configurar un clúster para ejecutar un script de inicialización, complete los pasos siguientes:

  1. En la página de configuración del clúster, haga clic en el botón de alternancia Advanced Options (Opciones avanzadas).
  2. En la parte inferior de la página, haga clic en la pestaña Init Scripts (Scripts de inicialización).
  3. En la lista desplegable Origen, seleccione el tipo de origen Área de trabajo, Volumen o ABFSS.
  4. Especifique una ruta de acceso al script de inicialización, como uno de los ejemplos siguientes:
    • En el caso de que el script de inicialización esté almacenado en el directorio principal con archivos de área de trabajo: /Users/<user-name>/<script-name>.sh.
    • En el caso de que el script de inicialización esté almacenado con volúmenes de Unity Catalog: /Volumes/<catalog>/<schema>/<volume>/<path-to-script>/<script-name>.sh.
    • En el caso de que el script de inicialización esté almacenado con el almacenamiento de objetos: abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/init-script.
  5. Haga clic en Agregar.

En el modo de acceso de usuario único, se usa la identidad de la entidad asignada (un usuario o una entidad de servicio).

En el modo de acceso compartido, se usa la identidad del propietario del clúster.

Nota:

El modo de acceso compartido sin aislamiento no admite volúmenes, pero usa la misma asignación de identidad que el modo de acceso compartido.

Para quitar un script de la configuración del clúster, haga clic en el icono de la papelera a la derecha del script. Cuando confirme la eliminación, se le pedirá que reinicie el clúster. Opcionalmente, puede eliminar el archivo de script de la ubicación en la que lo cargó.

Nota:

Si configura un script de inicialización mediante el tipo de origen ABFSS, debe configurar las credenciales de acceso.

Databricks recomienda usar entidades de servicio de Microsoft Entra ID para administrar el acceso a scripts de inicialización almacenados en Azure Data Lake Storage Gen2. Use la siguiente documentación vinculada para completar esta configuración:

  1. Cree una entidad de servicio con permisos de lectura y lista en los blobs deseados. Consulte Acceso al almacenamiento usando un principio de servicio y Microsoft Entra ID(Azure Active Directory).

  2. Guarde las credenciales mediante secretos. Consulte Secretos.

  3. Establezca las propiedades en la configuración de Spark y las variables de entorno al crear un clúster, como en el ejemplo siguiente:

    Configuración de Spark:

    spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth
    spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
    spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id>
    spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}}
    spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<tenant-id>/oauth2/token
    

    Variables de entorno:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Opcional) Refactorice los scripts de inicialización mediante azcopy o la CLI de Azure.

    Puede hacer referencia a variables de entorno establecidas durante la configuración del clúster dentro de los scripts de inicialización para pasar las credenciales almacenadas como secretos para la validación.

Advertencia

Los scripts de inicialización con ámbito de clúster en DBFS están al final del ciclo de vida. La opción DBFS de la interfaz de usuario existe en algunas áreas de trabajo para admitir cargas de trabajo heredadas y no se recomienda. Se deben migrar todos los scripts de inicialización almacenados en DBFS. Para obtener instrucciones de migración, consulte Migración de scripts de inicialización desde DBFS.

Solución de problemas de scripts de inicialización con ámbito de clúster

  • El script debe estar en la ubicación configurada. Si el script no existe, los intentos de iniciar el clúster o escalar verticalmente los ejecutores producen un error.
  • El script de inicialización no puede tener más de 64 KB. Si un script supera ese tamaño, el clúster no se iniciará y aparecerá un mensaje de error en el registro del clúster.