Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Disattivazione graduale delle istanze spot con Flink su Amazon EMR su EKS
Flink con Amazon EMR su EKS può migliorare il tempo di riavvio del processo durante le operazioni di ripristino delle attività o dimensionamento.
Panoramica
I rilasci 6.15.0 e successivi di Amazon EMR su EKS supportano la disattivazione graduale dei Task Manager sulle istanze spot in Amazon EMR su EKS con Apache Flink. Come parte di questa funzionalità, Amazon EMR su EKS con Flink offre le seguenti funzionalità:
-
Just-in-time checkpoint: i job di streaming Flink possono rispondere all'interruzione dell'istanza Spot, eseguire il checkpoint just-in-time (JIT) dei processi in esecuzione e impedire la pianificazione di attività aggiuntive su queste istanze Spot. Il checkpoint JIT è supportato con un pianificatore predefinito e adattivo.
-
Meccanismo di riavvio combinato: un meccanismo di riavvio combinato tenta di riavviare il processo dopo aver raggiunto il parallelismo delle risorse previsto o la fine della finestra configurata corrente. Ciò impedisce anche il riavvio consecutivo del processo che potrebbe essere causato da più terminazioni di istanze spot. Il meccanismo di riavvio combinato è disponibile solo con il pianificatore adattivo.
Queste funzionalità offrono i seguenti vantaggi:
-
Puoi sfruttare le istanze spot per eseguire i Task Manager e ridurre le spese del cluster.
-
Il miglioramento del riconoscimento di Task Manager per le istanze spot si traduce in una maggiore resilienza e in una pianificazione più efficiente dei processi.
-
I tuoi lavori Flink avranno più tempo di attività perché ci saranno meno riavvii dopo la terminazione dell'istanza spot.
Come funziona lo smantellamento senza intoppi
Considera il seguente esempio: esegui il provisioning di un cluster Amazon EMR su EKS che esegue Apache Flink e specifichi nodi On-Demand per Job Manager e nodi di istanza spot per Task Manager. Due minuti prima della terminazione, Task Manager riceve un avviso di interruzione.
In questo scenario, il Job Manager gestisce il segnale di interruzione dell'istanza spot, blocca la programmazione di attività aggiuntive sull'istanza spot e avvia il checkpoint JIT per il processo in streaming.
Quindi, il Job Manager riavvia il grafico dei processi solo dopo che la disponibilità di nuove risorse è sufficiente a soddisfare il parallelismo del processo corrente nella finestra dell'intervallo di riavvio. L'intervallo della finestra di riavvio viene deciso in base alla durata della sostituzione dell'istanza spot, alla creazione di nuovi pod di Task Manager e alla registrazione con Job Manager.
Prerequisiti
Per utilizzare il decommissioning grazioso, crea ed esegui un processo di streaming su un cluster Amazon EMR su EKS che esegue Apache Flink. Abilita il pianificatore adattivo e Task Manager pianificati su almeno un'istanza spot, come mostrato nell'esempio seguente. Devi utilizzare i nodi On-Demand per Job Manager e puoi utilizzare i nodi On-Demand per i Task Manager purché sia presente almeno un'istanza 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
Configurazione
Questa sezione copre la maggior parte delle configurazioni che puoi specificare per le tue esigenze di disattivazione.
Chiave | Descrizione | Valore predefinito | Valori accettabili |
---|---|---|---|
cluster.taskmanager.graceful-decommission.enabled
|
Abilita la disattivazione graduale di Task Manager. |
true
|
true , false
|
jobmanager.adaptive-scheduler.combined-restart.enabled
|
Abilita il meccanismo di riavvio combinato nel pianificatore adattivo. |
false
|
true , false
|
jobmanager.adaptive-scheduler.combined-restart.window-interval
|
L'intervallo combinato della finestra di riavvio per eseguire riavvii combinati per il processo. Un numero intero senza unità viene interpretato come millisecondi. |
1m
|
Esempi: 30 , 60s , 3m , 1h |