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 configuración del clúster.
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 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:
- Sencillez: No es necesario que configures ni administres 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 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 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 eliges usar clústeres estáticos, Cloud Data Fusion ofrece 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. Es posible que Dataproc escale automáticamente esta cantidad 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.
- 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 verifique 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.
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 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, 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, la cantidad necesaria clústeres para procesar todas tus ejecuciones se crearán 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. Aún puedes usar citas de Google Cloud 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 reutilizan entre diferentes canalizaciones en cuanto esas canalizaciones usan el mismo perfil y comparten la misma configuración de perfil. Perfil If se usa la personalización, los clústeres se reutilizarán, pero solo si personalizadas son exactamente iguales, incluidos todos los parámetros de configuración del clúster, como 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 la canalización y después de la última ejecución de la canalización.
Aunque es difícil predecir el efecto de los costos de la reutilización de clústeres, puedes emplear 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 de inactividad 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 más alto sea el de tiempo de inactividad máximo, más clústeres estarán inactivos, listos para ejecutarse.
Solución de problemas: Compatibilidad de versiones
Problema: La versión de tu entorno de Cloud Data Fusion podría no será compatible con la versión de tu 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 compatibles 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.1.1 | 2.2, 2.1, 2.0 * |
6.10 | 2.1, 2.0 * |
6.9 | 2.1, 2.0 y 1.5 * |
6.7-6.8 | 2.0, 1.5 * |
6.4 a 6.6 | 2.0 *, 1.3 ** |
6.1-6.3 | 1.3** |
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.
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 la política
Los clústeres de Dataproc se encuentran con presión de memoria, lo que provoca
excepción de memoria insuficiente para aparecer 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.