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 se ejecuta Spark trabajos en Dataproc. En esta página, se describen los enfoques principales configuración del clúster.

Clústeres efímeros predeterminados (recomendado)

El uso de clústeres predeterminados es el enfoque recomendado Canalizaciones de Cloud Data Fusion.

  • Cloud Data Fusion aprovisiona y administra automáticamente Clústeres de Dataproc 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 necesitas configurar ni administrar manualmente el clúster.
    • 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 canalizaciones que se ejecutan de forma continua o para períodos extensos, 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 la organización lo requiere ofrece un control centralizado sobre la creación y administración de clústeres, los clústeres se pueden usar junto con herramientas como Terraform.
  • Hora de creación del clúster: cuándo se tarda en crear un clúster nuevo de cada canalización es restrictivo para tu caso de uso.

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

Para usar un clúster estático, debes configurar 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 del trabajador: Especifica el tipo de máquina virtual del trabajador. nodos del clúster. Esto determina las CPU virtuales y la memoria cada trabajador.
  • Cantidad de trabajadores: Define la cantidad inicial de nodos trabajadores en tu clúster. Dataproc aún podría escalar automáticamente este número, según 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.
  • 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 lo siguiente: parámetros de 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 compruebe los límites de memoria física y cierre los contenedores en los siguientes casos: van más allá de 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 a la conexión o de subprocesos. Cualquier clúster se mantiene en funcionamiento durante un período tiempo una vez finalizada 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. Similar al clúster efímero normal de aprovisionamiento, un clúster ejecuta una sola ejecución de canalización a la vez. R El clúster solo se reutiliza 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. Similar al de Dataproc efímero, no hay control directo la cantidad de clústeres creados. Aún puedes usar citas de Google Cloud para administrar los recursos. Por ejemplo, si ejecutas 100 ejecuciones con un máximo de 7 para las ejecuciones paralelas, tendrás hasta 7 clústeres en un momento determinado.
  • Los clústeres se reutilizan entre diferentes canalizaciones en cuanto esas canalizaciones 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, incluido todo el parámetro de configuración del clúster, como el etiquetado.

  • 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 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 encadenadas y permitir la reutilización de clústeres para esta ruta crítica. De esta forma, garantizar que el clúster se reutilice de inmediato, que no se desperdicie tiempo de inactividad y que no se desperdicie tiempo se logran los beneficios de rendimiento.

Habilitar la reutilización del clúster

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 eliminación de clúster.
  • El tiempo de inactividad máximo es el tiempo hasta el que un clúster espera la siguiente canalización para reutilizarlos. El tiempo de inactividad máximo predeterminado es de 30 minutos. Para el tiempo de inactividad máximo, tener en cuenta el costo en comparación con la disponibilidad del clúster para la reutilización. Cuanto más alto sea el de 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 usar una de las versiones de Dataproc compatibles

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. Sin embargo, puedes seguir ejecutando un clúster que se creó con una versión no compatible, recomendamos reemplazarla por una creado con un versión compatible.

Versión de Cloud Data Fusion Versión de Dataproc
6.10 y posteriores 2.1, 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 cuenten con funciones específicas del SO se necesitan, se recomienda especificar el Versión de la imagen major.minor.
Para especificar la versión del SO que se usa en tu clúster de Dataproc, la dirección debe ser compatible con uno de los modelos más recientes para Cloud Data Fusion en la tabla anterior.

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

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 entorno de ejecución task.executor.system.resources.memory argumento a la canalización. Con el siguiente ejemplo de argumento de entorno de ejecución, se establece a 4,096 MB:

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

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

¿Qué sigue?