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.
En esta página se describen los procedimientos recomendados para configurar los recursos de proceso clásicos. Para la mayoría de las cargas de trabajo nuevas, Databricks recomienda usar el proceso sin servidor, lo que no requiere ninguna configuración. Si la carga de trabajo no es compatible con el cómputo sin servidor (consulte Limitaciones del cómputo sin servidor), use las siguientes prácticas recomendadas para configurar un recurso de proceso clásico.
Nota:
Los flujos de trabajo de Structured Streaming tienen recomendaciones de configuración específicas. Consulte Consideraciones de producción para Structured Streaming.
Modo de acceso
Los recursos de proceso clásicos se pueden asignar al modo de acceso estándar o dedicado, lo que determina quién puede asociar y usar el recurso de proceso.
Databricks recomienda usar el modo de acceso estándar para la mayoría de las cargas de trabajo. La capacidad de cómputo estándar puede compartirse entre varios usuarios y grupos, manteniendo el aislamiento entre usuarios y todos los permisos de acceso a los datos. Esto la convierte en una opción más fácil de administrar y rentable para la mayoría de las cargas de trabajo.
Use solo el modo de acceso dedicado si la carga de trabajo tiene limitaciones de proceso estándar específicas, como ml Runtime en GPU, API de RDD o R. Para más información, consulte Requisitos y limitaciones de proceso estándar.
Si el catálogo de Unity está habilitado, no establezca spark.databricks.passthrough.enabled. El acceso directo a credenciales es un modo de acceso heredado que no es compatible con el catálogo de Unity.
Consulte Modos de acceso.
Versión de Databricks Runtime
Use la versión más reciente de Databricks Runtime de soporte técnico a largo plazo (LTS). Las versiones de LTS reciben revisiones de seguridad extendidas y correcciones de errores, lo que garantiza que las cargas de trabajo permanezcan estables y sean compatibles con las características más recientes de la plataforma.
Seleccione solo un entorno de ejecución de aprendizaje automático si la carga de trabajo usa GPU, entrenamiento de ML distribuido o AutoML. Databricks Runtime for ML instala un gran conjunto de bibliotecas que pueden entrar en conflicto con sus propias dependencias si no es necesario, lo que provoca errores o problemas de corrección silenciosa. Consulte Entrenamiento de modelos de inteligencia artificial y aprendizaje automático.
Higiene de la configuración
Estas prácticas mantienen las configuraciones de proceso limpias y las cargas de trabajo son portátiles.
Evitar el uso de scripts de inicialización
Los scripts de inicialización pueden introducir comportamientos inesperados, incluidos los conflictos de biblioteca que interrumpen las cargas de trabajo y hacen que los entornos sean menos predecibles. En su lugar, agregue bibliotecas a las directivas de proceso, use %pip install en cuadernos o defina dependencias en una especificación de entorno. Consulte Agregar bibliotecas a una directiva.
Evitar configuraciones de Spark de codificación dura
Evite codificar las configuraciones de Spark (como spark.executor.memory o spark.dynamicAllocation.*) en las definiciones de proceso o trabajo. Los valores codificados de forma rígida invalidan las optimizaciones integradas que Azure Databricks proporciona, lo que suele dar lugar a un gasto desperdiciado o un rendimiento degradado. Use configuraciones de sesión con ámbito de cuaderno solo cuando tenga un motivo específico para invalidar un valor predeterminado.
Evite las rutas de almacenamiento local del nodo de cómputo
No almacene datos en rutas locales del recurso de proceso, que no perduran más allá del ciclo de vida de dicho recurso. En su lugar, use volúmenes de Catálogo de Unity o almacenamiento temporal. Consulte ¿Qué son los volúmenes?.
Evitar montajes DBFS
Los montajes DBFS carecen de listas de control de acceso (ACL) adecuadas. En su lugar, use volúmenes de Catálogo de Unity o sistemas de archivos del área de trabajo (WSFS). Consulte ¿Qué son los volúmenes?.
Evitar instalar bibliotecas de ámbito de proceso
La instalación de bibliotecas en el nivel de proceso crea una deriva del entorno entre trabajos. En su lugar, use %pip install en cuadernos o defina dependencias en una especificación de entorno. Esto también facilita la migración de cargas de trabajo clásicas a sin servidor.
Performance
Evaluar si se beneficiaría de Photon
Muchas cargas de trabajo se benefician de Photon, pero es más beneficiosa para las cargas de trabajo de SQL y las operaciones de DataFrame que implican transformaciones complejas, como combinaciones, agregaciones y exámenes de datos en tablas grandes. Las cargas de trabajo con acceso frecuente al disco, tablas anchas o procesamiento de datos repetidos también ven un rendimiento mejorado.
Los trabajos ETL de lotes simples que no implican transformaciones amplias o grandes volúmenes de datos pueden ver un impacto mínimo de la habilitación de Photon, especialmente si las consultas normalmente se completan en menos de dos segundos.
Uso del escalado automático
Configure el escalado automático para que las tareas de ejecución prolongada puedan agregar y quitar dinámicamente nodos de trabajo durante las ejecuciones de trabajos. Consulte Habilitar el escalado automático.
Uso de grupos de instancias para reducir las horas de inicio
Los conjuntos de instancias reservan recursos de computación de su proveedor de servicios en la nube. Las agrupaciones reducen el tiempo de inicio de los nuevos clústeres y garantizan la disponibilidad de recursos de proceso. Consulte Referencia de configuración de la piscina.
Optimización de costos
Use políticas de cómputo
Azure Databricks recomienda usar directivas de proceso. Las directivas de proceso permiten crear recursos de proceso preconfigurados diseñados para casos de uso específicos, como proceso personal, proceso compartido, usuarios avanzados y trabajos. Las directivas limitan las decisiones que debe tomar al configurar las opciones de proceso.
Si no tiene acceso a las directivas, póngase en contacto con el administrador del área de trabajo. Consulte Directivas predeterminadas y familias de directivas.
Usar instancias de acceso puntual
Configura instancias spot para cargas de trabajo que tengan requisitos de latencia flexibles para optimizar los costos. Consulte las instancias de acceso puntual.
Consideraciones sobre el dimensionamiento de cómputo
Nota:
Las siguientes recomendaciones suponen que puede crear clústeres sin restricciones. Los administradores del área de trabajo solo deben conceder este privilegio a los usuarios avanzados.
Las personas suelen pensar en el tamaño de proceso en términos del número de roles de trabajo, pero hay otros factores importantes que se deben tener en cuenta:
- Totalidad de núcleos de ejecutores (proceso): número total de núcleos en todos los ejecutores. Esto determina el grado máximo de paralelismo de un recurso de cómputo.
- Memoria total de los ejecutores: cantidad total de RAM en todos los ejecutores. Determina cuántos datos se pueden almacenar en la memoria antes de volcarlos en el disco.
- Almacenamiento local del ejecutor: el tipo y la cantidad de almacenamiento en el disco local. El disco local se usa principalmente en el caso de desbordamientos durante los ordenes aleatorios y el almacenamiento en caché.
Entre las consideraciones adicionales se incluyen el tamaño y el tipo de instancia de trabajo, que también influyen en los factores anteriores. Al dimensionar los recursos de cómputo, tenga en cuenta:
- ¿Cuántos datos consumirá la carga de trabajo?
- ¿Cuál es la complejidad computacional de la carga de trabajo?
- ¿Desde dónde se leen los datos?
- ¿Cómo se realiza la partición de los datos en el almacenamiento externo?
- ¿Cuánto paralelismo se necesita?
Existe una acción de equilibrio entre la cifra de trabajos y el tamaño de los tipos de instancia de trabajo. Configurar la capacidad de procesamiento con dos nodos de trabajo, cada uno con 16 núcleos y 128 GB de RAM, ofrece la misma capacidad de procesamiento y memoria que configurarla con 8 nodos de trabajo, cada uno con 4 núcleos y 32 GB de RAM.
Ejemplos de configuración de cómputo
Los siguientes ejemplos muestran recomendaciones de cómputo basadas en tipos específicos de cargas de trabajo. Los ejemplos también incluyen opciones de configuración que se deben evitar y las razones por las cuales esas no son apropiadas para las cargas de trabajo.
Nota:
Todos los ejemplos de esta sección podrían beneficiarse del uso de proceso sin servidor en lugar de poner en marcha un nuevo recurso de proceso. Si su carga de trabajo no es compatible con serverless, utilice las recomendaciones siguientes para configurar su recurso de proceso clásico.
Análisis de datos
Los analistas de datos suelen realizar el procesamiento que requiere datos de varias particiones, lo que provoca muchas operaciones de orden aleatorio. Un recurso de computación con un número menor de nodos de mayor tamaño puede reducir la E/S de red y de disco necesaria para realizar estas reorganizaciones.
Es probable que un proceso de un solo nodo con un tipo de máquina virtual grande sea la mejor opción, especialmente para un único analista.
Es probable que las cargas de trabajo analíticas requieran leer los mismos datos repetidamente, por lo que los tipos de nodo recomendados están optimizados para el almacenamiento con la memoria caché de disco habilitada o son instancias con almacenamiento local.
Entre las características adicionales recomendadas para las cargas de trabajo analíticas se incluyen:
- Habilite la terminación automática para asegurarse de que el proceso finaliza después de un período de inactividad.
- Considere la posibilidad de habilitar el escalado automático en función de la carga de trabajo típica del analista.
ETL básico por lotes
Para trabajos ETL por lotes simples que no requieren transformaciones amplias, como combinaciones o agregaciones, use instancias con requisitos más bajos para la memoria y el almacenamiento. Esto puede dar lugar a un ahorro de costos en otros tipos de trabajo.
ETL complejo por lotes
Para un proceso ETL complejo, como uno que requiere operaciones UNION y JOIN entre varias tablas, Azure Databricks recomienda usar menos nodos de trabajo para reducir la cantidad de datos redistribuidos. Para compensar el hecho de tener menos trabajadores, aumente el tamaño de sus instancias.
Las transformaciones complejas pueden requerir un gran uso de recursos de cálculo. Si observa un volcado significativo en el disco o errores de OOM, aumente la cantidad de memoria disponible en las instancias.
Opcionalmente, use grupos de instancias para reducir los tiempos de inicio de proceso y reducir el tiempo de ejecución total al ejecutar canalizaciones de trabajo.
Entrenamiento de modelos de Machine Learning
Para entrenar modelos de aprendizaje automático, Azure Databricks recomienda crear un recurso de proceso mediante la directiva de proceso personal.
Utilice un cómputo de un solo nodo con un tipo de nodo de gran tamaño para las pruebas iniciales. Contar con menos nodos reduce el impacto de las reorganizaciones aleatorias.
La adición de más trabajadores puede ayudar con la estabilidad, pero evita agregar demasiados debido a la sobrecarga que supone barajar los datos.
Los tipos de nodo de trabajo recomendados son los optimizados para almacenamiento con la caché de disco habilitada, o las instancias con almacenamiento local, para admitir lecturas repetidas de los mismos datos y habilitar la caché de los datos de entrenamiento.
Entre las características adicionales recomendadas para las cargas de trabajo de aprendizaje automático se incluyen:
- Habilite la terminación automática para asegurarse de que el proceso finaliza después de un período de inactividad.
- Use grupos de instancias, que permiten restringir el proceso a un tipo de instancia aprobado previamente.
- Garantice configuraciones de cómputo coherentes mediante directivas.