Configuraciones del grupo de Apache Spark en Azure Synapse Analytics

Un grupo de Spark es un conjunto de metadatos que define los requisitos de recursos de proceso y las características de comportamiento asociadas cuando se crean instancias de una instancia de Spark. Estas características incluyen, entre otras, el nombre, el número de nodos, el tamaño del nodo, el comportamiento de escalado y el período de vida. Un grupo de Spark no consume ningún recurso por sí mismo. La creación de grupos de Spark no conlleva ningún costo. Solo se incurre en cargos una vez que se ejecuta un trabajo de Spark en el grupo de Spark de destino y se crean instancias de la instancia de Spark a petición.

Puede consultar cómo crear un grupo de Spark y ver todas sus propiedades en Introducción a los grupos de Spark en Synapse Analytics.

Proceso aislado

La opción de proceso aislado reporta una mayor seguridad a los recursos de proceso de Spark procedentes de servicios que no son de confianza, para lo cual dedica el recurso de proceso físico a un solo cliente. Esta opción es la que mejor funciona en cargas de trabajo que requieren un alto grado de aislamiento de otros clientes por motivos como, por ejemplo, el cumplimiento normativo y de requisitos legales. La opción de proceso aislado solamente está disponible con el tamaño de nodo XXXGrande (80 vCPU/504 GB) y en las regiones indicadas abajo. La opción de proceso aislado se puede habilitar o deshabilitar después de la creación del grupo, aunque puede que sea necesario reiniciar la instancia. Si tiene previsto habilitar esta característica en el futuro, asegúrese de que el área de trabajo de Synapse se crea en una región donde se admitan procesos aislados.

  • Este de EE. UU.
  • Oeste de EE. UU. 2
  • Centro-sur de EE. UU.
  • US Gov: Arizona
  • US Gov - Virginia

Nodos

La instancia del grupo de Apache Spark consta de un nodo principal y dos o más nodos de trabajo con un mínimo de tres nodos en una instancia de Spark. El nodo principal ejecuta servicios de administración adicionales, como Livy, Yarn Resource Manager, Zookeeper y el controlador de Spark. Todos los nodos ejecutan servicios como Node Agent y Yarn Node Manager. Todos los nodos de trabajo ejecutan el servicio Spark Executor.

Tamaño de nodo

Un grupo de Spark se puede definir con tamaños de nodo que van desde un nodo de ejecución pequeño con 4 núcleos virtuales y 32 GB de memoria hasta un nodo de ejecución extragrande con 64 núcleos virtuales y 512 GB de memoria por nodo. Los tamaños de nodo se pueden modificar después de que se cree el grupo, aunque es posible que sea necesario reiniciar la instancia.

Size vCore Memoria
Small 4 32 GB
Media 8 64 GB
grande 16 128 GB
XGrande 32 256 GB
XXGrande 64 512 GB
XXXGrande (proceso aislado) 80 504 GB

Escalado automático

La escalabilidad automática para grupos de Apache Spark proporciona la capacidad de escalar y reducir verticalmente los recursos de proceso en función de la cantidad de actividad. Cuando se habilita la característica de escalabilidad automática, se establece el número mínimo y máximo de nodos que se van a escalar. Cuando la característica de escalabilidad automática está deshabilitada, el número de nodos establecido permanecerá fijo. Esta configuración se puede modificar después de que se cree el grupo, aunque es posible que sea necesario reiniciar la instancia.

Almacenamiento de grupo elástico

Los grupos de Apache Spark ahora admiten almacenamiento de grupo elástico. El almacenamiento de grupo elástico permite al motor de Spark supervisar el almacenamiento temporal del nodo de trabajo y conectar discos adicionales si es necesario. Los grupos de Apache Spark usan almacenamiento en disco temporal mientras se crea una instancia del grupo. Los trabajos de Spark escriben salidas de asignación aleatoria, ordenan datos y datos desbordados en discos de máquina virtual locales. Algunos ejemplos de operaciones que pueden usar el disco local son ordenar, almacenar en caché y conservar. Cuando se agota el espacio en disco temporal de la máquina virtual, es posible que se produzca un error en los trabajos de Spark debido al error "Espacio insuficiente en disco" (java.io.IOException: sin espacio restante en el dispositivo). Con errores de "Espacio insuficiente en disco", gran parte de la carga para evitar que los trabajos produzcan un error al cambiar al cliente para volver a configurar los trabajos de Spark (por ejemplo, ajustar el número de particiones) o clústeres (por ejemplo, agregar más nodos al clúster). Estos errores podrían no ser coherentes y el usuario puede acabar experimentando en gran medida mediante la ejecución de trabajos de producción. Este proceso puede ser costoso para el usuario en varias dimensiones:

  • Tiempo desperdiciado. Los clientes deben experimentar en gran medida con configuraciones de trabajo a través de prueba y error y se espera que comprendan las métricas internas de Spark para tomar la decisión correcta.
  • Recursos desperdiciados. Dado que los trabajos de producción pueden procesar una cantidad variable de datos, los trabajos de Spark pueden producir un error de manera no determinista si los recursos no se aprovisionan en exceso. Por ejemplo, considere el problema de la asimetría de datos, lo que puede dar lugar a que algunos nodos requieran más espacio en disco que otros. Actualmente en Synapse, todos los nodos de un clúster obtienen el mismo tamaño de espacio en disco. El aumento del espacio en disco en todos los nodos no es una solución ideal y produce un gran desperdicio.
  • Ralentización en la ejecución del trabajo. En el escenario hipotético en el que se resuelve el problema mediante el escalado automático de nodos (suponiendo que los costos no son un problema para el cliente final), agregar un nodo de ejecución sigue siendo costoso (tarda unos minutos) en lugar de agregar almacenamiento (tarda unos segundos).

No se necesita ninguna acción por parte del usuario, además de que debería ver menos errores de trabajo como resultado.

Nota:

El almacenamiento dl grupo elástico de Azure Synapse se encuentra actualmente en versión preliminar pública. Durante la versión preliminar pública no se aplica ningún cargo por el uso del almacenamiento de grupo elástico.

Pausa automática

La característica de pausa automática libera recursos después de un período de inactividad establecido, lo que reduce el costo general de un grupo de Apache Spark. El número de minutos de inactividad se puede configurar una vez que se habilita esta característica. La característica de pausa automática es independiente de la característica de escalabilidad automática. Los recursos se pueden pausar si la escalabilidad automática está habilitada o deshabilitada. Esta configuración se puede modificar después de la creación del grupo, aunque es necesario reiniciar las sesiones activas.

Pasos siguientes