Configuración del clúster de Dataproc

En Cloud Data Fusion, la configuración del clúster se refiere a definir cómo las canalizaciones de procesamiento de datos usan recursos de procesamiento cuando ejecutan trabajos de Spark en Dataproc. En esta página, se describen los enfoques principales de 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 de forma automática clústeres efímeros de Dataproc para cada ejecución de canalización. Este crea un clúster al comienzo de la ejecución de la canalización y lo borra una vez que esta se completa.
  • Beneficios de los clústeres efímeros:
    • Simplicidad: no necesitas configurar ni administrar el clúster de forma manual.
    • Rentabilidad: solo pagas por los recursos usados durante la ejecución de la canalización.

Para ajustar los clústeres y mejorar 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: Para 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 eliminar clústeres efímeros de forma repetida.
  • Administración centralizada de los clústeres: Si tu organización requiere un control centralizado sobre las políticas de creación y administración de clústeres, los clústeres estáticos se pueden usar junto con herramientas como Terraform.
  • Hora de creación del clúster: Cuando el tiempo que lleva crear un clúster nuevo por cada canalización es prohibitivo para tu caso práctico.

Sin embargo, los clústeres estáticos requieren una configuración más manual y requieren que administres el ciclo de vida del clúster por tu cuenta.

Para usar un clúster estático, debes establecer 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 eliges usar clústeres estáticos, Cloud Data Fusion ofrece opciones de configuración para los siguientes aspectos:

  • Tipo de máquina de trabajador: 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. Dataproc aún puede realizar un ajuste de escala automático de este número en función de la carga de trabajo.
  • Zona: Selecciona la zona de Google Cloud de tu clúster. La ubicación puede afectar la localidad de los datos y el rendimiento de la red.
  • Configuración adicional: Puedes establecer opciones avanzadas para tu clúster estático, como la configuración de interrupció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 la siguiente configuración.

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

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

Vuelve 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 a la agrupación de conexiones o de subprocesos. Cualquier clúster se mantiene en funcionamiento durante un tiempo específico después de que finaliza la ejecución. Cuando se inicie una ejecución nueva, 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 reutilizar clústeres

  • Los clústeres no se comparten. Al igual que 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 vuelve a usar solo si está inactivo.
  • Si habilitas la reutilización de clústeres para todas tus ejecuciones, se creará la cantidad necesaria de clústeres a fin de procesar todas tus ejecuciones según sea necesario. Al igual que el aprovisionador efímero de Dataproc, no hay control directo sobre la cantidad de clústeres creados. Aún puedes usar cotizaciones de Google Cloud para administrar los recursos. Por ejemplo, si ejecutas 100 ejecuciones con 7 ejecuciones paralelas como máximo, tendrás hasta 7 clústeres en un momento determinado.
  • Los clústeres se reutilizan entre diferentes canalizaciones 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 reutilizarán, pero solo si las personalizaciones son exactamente las mismas, incluidas todas las opciones de configuración del clúster, como el etiquetado de clústeres.

  • Cuando la reutilización de clústeres está habilitada, 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 de la canalizació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 canalizaciones encadenadas y habilitar la reutilización de clústeres para esta ruta crítica. Esto garantizaría que el clúster se reutilice de inmediato, que no se desperdicie tiempo de inactividad y que se logren los beneficios máximos de rendimiento.

Habilitar la reutilización del clúster

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

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

Solución de problemas: 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.

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

Las versiones anteriores de Cloud Data Fusion solo son compatibles con versiones no compatibles 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, recomendamos reemplazarlo por uno creado con una versión compatible.

Versión de Cloud Data Fusion Versión de Dataproc
6.10 y posteriores 2.1 y 2.0 *
6.9 2.1, 2.0 y 1.5 *
6.7 a 6.8 2.0, 1.5 *
6.4 a 6.6 2.0 *, 1.3 **
6.1 a 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, esta versión debe ser compatible con una de las versiones de Dataproc compatibles con Cloud Data Fusion en la tabla anterior.

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

¿Qué sigue?