Configuración del clúster de Dataproc

En Cloud Data Fusion, la configuración del clúster hace referencia a la definición de cómo las canalizaciones de procesamiento de datos utilizan los recursos de procesamiento cuando se ejecutan trabajos de Spark en Dataproc. En esta página, se describen los enfoques principales para la configuración de clústeres.

Clústeres efímeros predeterminados (recomendado)

El uso de los clústeres predeterminados es el enfoque recomendado para las canalizaciones de Cloud Data Fusion.

  • Cloud Data Fusion aprovisiona y administra automáticamente los clústeres de Dataproc efímeros para cada ejecución de canalización. Crea un clúster al comienzo de la ejecución de la canalización y, luego, lo borra cuando se completa.
  • Beneficios de los clústeres efímeros:
    • Simplicidad: No es necesario que configures ni administres el clúster de forma manual.
    • Eficiencia en costos: Solo pagas por los recursos que se usan durante la ejecución de la canalización.

Para ajustar los clústeres y optimizar el rendimiento, consulta Tamaño del clúster.

Clústeres estáticos (para situaciones específicas)

En las siguientes situaciones, puedes usar clústeres estáticos:

  • Canalizaciones de larga duración: En el caso de las canalizaciones que se ejecutan de forma continua o durante períodos prolongados, un clúster estático puede ser más rentable que crear y derribar clústeres efímeros de forma repetida.
  • Administración de clústeres centralizada: Si tu organización requiere un control centralizado sobre las políticas de creación y administración de clústeres, se pueden usar clústeres estáticos junto con herramientas como Terraform.
  • Tiempo de creación del clúster: Cuando el tiempo que lleva crear un clúster nuevo para cada canalización es prohibitivo para tu caso de uso.

Sin embargo, los clústeres estáticos requieren más configuración manual y conllevan la administración del ciclo de vida del clúster por tu cuenta.

Para usar un clúster estático, debes configurar la siguiente propiedad en el clúster de Dataproc:

dataproc:dataproc.conscrypt.provider.enable=false

Opciones de configuración de clústeres para clústeres estáticos

Si decides usar clústeres estáticos, Cloud Data Fusion ofrece opciones de configuración para los siguientes aspectos:

  • Tipo de máquina de trabajo: Especifica el tipo de máquina virtual para los nodos trabajadores de tu clúster. Esto determina las CPU virtuales y la memoria disponibles para cada trabajador.
  • Cantidad de trabajadores: Define la cantidad inicial de nodos trabajadores en tu clúster. Es posible que Dataproc escale automáticamente esta cantidad en función de la carga de trabajo.
  • Zona: Selecciona la Google Cloud zona del clúster. La ubicación puede afectar la localidad de los datos y el rendimiento de la red.
  • Configuraciones adicionales: Puedes configurar opciones avanzadas para tu clúster estático, como la configuración de anulación, la configuración de red y las acciones de inicialización.

Prácticas recomendadas

Cuando crees un clúster estático para tus canalizaciones, usa las siguientes configuraciones.

Parámetros Descripción
yarn.nodemanager.delete.debug-delay-sec Retiene los registros de YARN.
Valor recomendado: 86400 (equivalente a un día)
yarn.nodemanager.pmem-check-enabled Permite que YARN verifique los límites de memoria física y cierre los contenedores si superan la memoria física.
Valor recomendado: false
yarn.nodemanager.vmem-check-enabled Permite que YARN verifique los límites de memoria virtual y cierre los contenedores si superan la memoria física.
Valor recomendado: false.

Para obtener más información, consulta Ejecuta una canalización en un clúster existente de Dataproc.

Cómo volver a usar clústeres

Puedes volver a usar los clústeres de Dataproc entre ejecuciones para mejorar el tiempo de procesamiento. La reutilización de clústeres se implementa en un modelo similar al grupo de conexiones o al grupo de subprocesos. Cualquier clúster se mantiene en funcionamiento durante un tiempo determinado después de que finaliza la ejecución. Cuando se inicie una ejecución nueva, se intentará encontrar un clúster inactivo disponible que coincida con la configuración del perfil de procesamiento. Si hay uno, se usará; de lo contrario, se iniciará un clúster nuevo.

Consideraciones para volver a usar clústeres

  • Los clústeres no se comparten. Al igual que en el modelo de aprovisionamiento de clústeres efímeros normal, un clúster ejecuta una sola ejecución de canalización a la vez. Un clúster se reutiliza solo si está inactivo.
  • Si habilitas la reutilización de clústeres para todas tus ejecuciones, se creará la cantidad necesaria de clústeres para procesar todas tus ejecuciones según sea necesario. Al igual que con el aprovisionador efímero de Dataproc, no hay un control directo sobre la cantidad de clústeres creados. Puedes usar Google Cloud comillas para administrar los recursos. Por ejemplo, si ejecutas 100 ejecuciones con 7 ejecuciones en paralelo máximas, tendrás hasta 7 clústeres en un momento determinado.
  • Los clústeres se vuelven a usar entre diferentes canalizaciónes en cuanto estas usan el mismo perfil y comparten la misma configuración de perfil. Si se usa la personalización de perfiles, los clústeres se volverán a usar, pero solo si las personalizaciones son exactamente las mismas, incluidos todos los parámetros de configuración del clúster, como el etiquetado.

  • Cuando se habilita la reutilización de clústeres, hay dos consideraciones de costos principales:

    • Se usan menos recursos para el inicio y la inicialización del clúster.
    • Se usan más recursos para que los clústeres permanezcan inactivos entre las ejecuciones de la canalización y después de la última ejecución.

Si bien es difícil predecir el efecto del costo de la reutilización de clústeres, puedes emplear una estrategia para obtener el máximo ahorro. La estrategia es identificar una ruta crítica para las canalización encadenadas y habilitar la reutilización del clúster para esta ruta crítica. Esto aseguraría que el clúster se vuelva a usar de inmediato, que no se desperdicie tiempo inactivo y que se obtengan los máximos beneficios de rendimiento.

Habilita la reutilización de clústeres

En la sección Configuración de procesamiento de la configuración de la canalización implementada o cuando se crea un perfil de procesamiento nuevo, haz lo siguiente:

  • Habilita Omitir la eliminación del clúster.
  • El tiempo inactivo máximo es el tiempo hasta el que un clúster espera a que la siguiente canalización lo vuelva a usar. El tiempo de inactividad máximo predeterminado es de 30 minutos. En el caso del tiempo inactivo máximo, considera el costo en comparación con la disponibilidad del clúster para su reutilización. Cuanto mayor sea el valor de Max Idle Time, más clústeres estarán inactivos y listos para ejecutarse.

Soluciona problemas de compatibilidad de versiones

Problema: Es posible que la versión del entorno de Cloud Data Fusion no sea compatible con la versión del clúster de Dataproc.

Recomendado: Actualiza a la versión más reciente de Cloud Data Fusion y usa una de las versiones compatibles de Dataproc.

Las versiones anteriores de Cloud Data Fusion solo son compatibles con versiones no admitidas de Dataproc. Dataproc no proporciona actualizaciones ni asistencia para los clústeres creados con estas versiones. Aunque puedes seguir ejecutando un clúster que se creó con una versión no compatible, te recomendamos que lo reemplaces por uno creado con una versión compatible.

Versión de Cloud Data Fusion Versión de Dataproc
6.10.1.1 2.2***, 2.1 y 2.0 *
6.10 2.1, 2.0 *
6.9 2.1, 2.0, 1.5 *
6.7-6.8 2.0, 1.5 *
6.4-6.6 2.0 *, 1.3 **
6.1-6.3 1.3**

* Las versiones 6.4 y posteriores de Cloud Data Fusion son compatibles con las versiones compatibles de Dataproc. A menos que se necesiten funciones específicas del SO, la práctica recomendada es especificar la versión de la imagen major.minor.
Para especificar la versión del SO que se usa en tu clúster de Dataproc, la versión del SO debe ser compatible con una de las versiones de Dataproc admitidas para tu Cloud Data Fusion en la tabla anterior.

** Las versiones de 6.1 a 6.6 de Cloud Data Fusion son compatibles con la versión 1.3 de Dataproc no admitida.

*** Se detectaron ciertos problemas con esta versión de la imagen. No se recomienda esta versión de la imagen de Dataproc para su uso en producción.

Solución de problemas: El contenedor salió con un código de salida 3 distinto de cero

Problema: No se usa una política de ajuste de escala automático, y los clústeres estáticos de Dataproc experimentan presión de memoria, lo que hace que aparezca una excepción de falta de memoria en los registros: Container exited with a non-zero exit code 3.

Recomendado: Aumenta la memoria del ejecutor.

Para aumentar la memoria, agrega un argumento de tiempo de ejecución task.executor.system.resources.memory a la canalización. En el siguiente ejemplo, el argumento del entorno de ejecución establece la memoria en 4,096 MB:

"task.executor.system.resources.memory": 4096

Para obtener más información, consulta Tamaño del clúster.

¿Qué sigue?