

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Desativação tranquila de instâncias spot com Flink no Amazon EMR no EKS
<a name="jobruns-flink-decommission"></a>

O Flink com o Amazon EMR no EKS pode melhorar o tempo de reinicialização de trabalhos durante as operações de recuperação e ajuste de escala de tarefas.

## Visão geral do
<a name="jobruns-flink-decommission-overview"></a>

As versões 6.15.0 e superiores do Amazon EMR no EKS oferecem suporte à desativação tranquila de gerenciadores de tarefas em instâncias spot no Amazon EMR no EKS com o Flink para Apache. Como parte desse recurso, o Amazon EMR no EKS com o Flink fornece as funcionalidades a seguir.
+ Just-in-time ponto **de verificação** — As tarefas de streaming do Flink podem responder à interrupção da Instância Spot, realizar o ponto de verificação just-in-time (JIT) das tarefas em execução e impedir o agendamento de tarefas adicionais nessas Instâncias Spot. O ponto de verificação de JIT é compatível com agendadores padrão e adaptáveis.
+ **Mecanismo de reinicialização combinado**: um mecanismo de reinicialização combinado faz a melhor tentativa de reiniciar o trabalho depois que ele atinge o paralelismo de recursos de destino ou o final da janela configurada atual. Isso também evita reinicializações consecutivas de trabalhos que podem ser causadas por vários encerramentos de instâncias spot. O mecanismo de reinicialização combinado está disponível somente com o agendador adaptável.

Esses recursos fornecem os seguintes benefícios:
+ Você pode aproveitar as instâncias spot para executar gerenciadores de tarefas e reduzir os gastos com clusters.
+ O aprimoramento de liveness do gerenciador de tarefas da instância spot resulta em maior resiliência e agendamento de trabalhos mais eficiente.
+ Seus trabalhos do Flink terão mais tempo de atividade porque haverá menos reinicializações após o encerramento da instância spot.

## Como funciona a desativação normal
<a name="jobruns-flink-decommission-howitworks"></a>

Considere o seguinte exemplo: você provisiona um cluster do Amazon EMR no EKS executando o Flink para Apache e especifica nós sob demanda para o gerenciador de trabalhos e nós de instância spot para o gerenciador de tarefas. Dois minutos antes do encerramento, o gerenciador de tarefas recebe um aviso de interrupção.

Nesse cenário, o gerenciador de trabalhos manipularia o sinal de interrupção da instância spot, bloquearia o agendamento de tarefas adicionais na instância spot e iniciaria o ponto de verificação de JIT do trabalho de streaming.

Em seguida, o gerenciador de trabalhos reiniciaria o gráfico do trabalho somente depois que houvesse disponibilidade suficiente de novos recursos para satisfazer o paralelismo atual de trabalhos na janela atual do intervalo de reinicialização. O intervalo da janela de reinicialização é decidido com base na duração da substituição da instância spot, na criação de novos pods do gerenciador de tarefas e no registro no gerenciador de trabalhos.

## Pré-requisitos
<a name="jobruns-flink-decommission-prereqs"></a>

Para usar a desativação normal, crie e execute um trabalho de streaming em um cluster do Amazon EMR no EKS executando o Apache Flink. Habilite o agendador adaptável e os gerenciadores de tarefas agendados em, pelo menos, uma instância spot, conforme mostrado no exemplo a seguir. Você deve usar nós sob demanda para o gerenciador de trabalhos e pode usar nós sob demanda para os gerenciadores de tarefas, desde que também haja pelo menos uma instância 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
```

## Configuração
<a name="jobruns-flink-decommission-config"></a>

Esta seção aborda a maioria das configurações que você pode especificar para as suas necessidades de desativação. 


| Chave | Description | Valor padrão  | Valores aceitos | 
| --- | --- | --- | --- | 
|  cluster.taskmanager.graceful-decommission.enabled  |  Habilita a desativação tranquila do gerenciador de tarefas.  |  true  |  true, false  | 
|  jobmanager.adaptive-scheduler.combined-restart.enabled  |  Habilita o mecanismo de reinicialização combinado no agendador adaptável.  |  false  |  true, false  | 
|  jobmanager.adaptive-scheduler.combined-restart.window-interval  |  O intervalo combinado da janela de reinicialização para efetuar reinicializações mescladas do trabalho. Um número inteiro sem uma unidade é interpretado como milissegundos.  |  1m  |  Exemplos: 30, 60s, 3m, 1h  | 