Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Desactivación rápida de las instancias de spot con Flink en Amazon EMR en EKS
Flink con Amazon EMR en EKS puede mejorar el tiempo de reinicio de un trabajo durante las operaciones de recuperación o escalado de tareas.
Información general
A partir de las versiones 6.15.0, Amazon EMR en EKS es compatible con la desactivación rápida de los administradores de tareas en instancias de sport de Amazon EMR en EKS con Apache Flink. Como parte de esta característica, Amazon EMR en EKS con Flink ofrece las siguientes funciones:
-
Control justo a tiempo: los trabajos de transmisión de Flink pueden responder a la interrupción de una instancia de spot, realizar un control justo a tiempo (JIT) de los trabajos en ejecución e impedir la programación de tareas adicionales en estas instancias de spot. El punto de control JIT es compatible con el programador predeterminado y adaptativo.
-
Mecanismo de reinicio combinado : un mecanismo de reinicio combinado hace todo lo posible por reiniciar el trabajo una vez alcanzado el paralelismo de los recursos objetivo o al final de la ventana configurada actualmente. Esto también evita que los trabajos se reinicien de forma consecutiva, lo que podría deberse a la finalización de varias instancias de sport. El mecanismo de reinicio combinado solo está disponible con el programador adaptativo.
Estas capacidades brindan los siguientes beneficios:
-
Puede aprovechar las instancias de spot para ejecutar administradores de tareas y reducir el gasto en clústeres.
-
La mejora de la agilidad del administrador de tareas de las instancias de spot se traduce en una mayor resiliencia y en una programación de trabajos más eficiente.
-
Sus trabajos de Flink tendrán más tiempo de actividad porque se reiniciarán menos tras la finalización de una instancia de Spot.
Cómo funciona una desactivación rápida
Considere el siguiente ejemplo: aprovisiona un clúster de Amazon EMR en EKS que ejecuta Apache Flink y especifica los nodos bajo demanda para el administrador de trabajos y los nodos de las instancias de spot para el administrador de tareas. Dos minutos antes de la finalización, el administrador de tareas recibe un aviso de interrupción.
En este escenario, el administrador de trabajos gestionaría la señal de interrupción de la instancia de spot, bloquearía la programación de tareas adicionales en la instancia de spot e iniciaría los puntos de control JIT para el trabajo de transmisión.
A continuación, el administrador de trabajos reiniciaría el gráfico de tareas solo cuando haya suficiente disponibilidad de nuevos recursos para satisfacer el paralelismo de tareas actual en la ventana de intervalos de reinicio actual. El intervalo de reinicios se decide en función de la duración del reemplazo de la instancia de spot, la creación de nuevos pods del administrador de tareas y el registro en el administrador de trabajos.
Requisitos previos
Para utilizar una desactivación rápida, cree y ejecute un trabajo de streaming en un clúster de Amazon EMR en EKS que ejecute Apache Flink. Habilite el programador adaptativo y los administradores de tareas programados en al menos una instancia de spot, como se muestra en el siguiente ejemplo. Debe utilizar nodos bajo demanda para el administrador de trabajos y puede usar nodos bajo demanda para los administradores de tareas siempre que también haya al menos una instancia de spot.
apiVersion: flink.apache.org/v1beta1 kind: FlinkDeployment metadata: name:
deployment_name
spec: flinkVersion: v1_17 flinkConfiguration: taskmanager.numberOfTaskSlots: "2" cluster.taskmanager.graceful-decommission.enabled: "true" execution.checkpointing.interval: "240s" jobmanager.adaptive-scheduler.combined-restart.enabled: "true" jobmanager.adaptive-scheduler.combined-restart.window-interval : "1m" serviceAccount: flink jobManager: resource: memory: "2048m" cpu: 1 nodeSelector: 'eks.amazonaws.com/capacityType': 'ON_DEMAND' taskManager: resource: memory: "2048m" cpu: 1 nodeSelector: 'eks.amazonaws.com/capacityType': 'SPOT' job: jarURI:flink_job_jar_path
Configuración
En esta sección, se describe la mayoría de las configuraciones que puede especificar para sus necesidades de desactivación.
Clave | Descripción | Valor predeterminado | Valores aceptables |
---|---|---|---|
cluster.taskmanager.graceful-decommission.enabled
|
Habilite la desactivación rápida del administrador de tareas. |
true
|
true , false
|
jobmanager.adaptive-scheduler.combined-restart.enabled
|
Habilite el mecanismo de reinicio combinado en el programador adaptativo. |
false
|
true , false
|
jobmanager.adaptive-scheduler.combined-restart.window-interval
|
El intervalo combinado de la ventana de reinicios para realizar los reinicios combinados del trabajo. Un entero sin unidad se interpreta como milisegundos. |
1m
|
Ejemplos: 30 , 60s , 3m , 1h |