Manutenção de aplicações do Flink - Amazon EMR

Manutenção de aplicações do Flink

As aplicações do Flink costumam ser projetadas para execuções por longos períodos, como semanas, meses ou até anos. Como acontece com todos os serviços de execução prolongada, as aplicações de streaming do Flink precisam de manutenção. Isso inclui correções de erros, melhorias e migração para um cluster do Flink de uma versão mais recente.

Quando o arquivo spec muda para os recursos FlinkDeployment e FlinkSessionJob, você precisa atualizar a aplicação em execução. Para isso, o operador interrompe o trabalho em execução (a menos que já esteja suspenso) e o reimplanta com o arquivo spec mais recente e, em aplicações com estado, o estado da execução anterior.

Os usuários controlam como gerenciar o estado quando aplicações com estado param e são restauradas com a configuração upgradeMode do JobSpec.

Introdução opcional

Sem estado

Atualizações de aplicações sem estado começando do estado vazio.

Último estado

Atualizações rápidas em qualquer estado da aplicação (mesmo em trabalhos com falha) não exigem um trabalho íntegro, pois sempre usam o ponto de verificação bem-sucedido mais recente. A recuperação manual pode ser necessária se os metadados de HA forem perdidos. Para limitar o tempo em que o trabalho pode efetuar fallback ao escolher o ponto de verificação mais recente, você pode configurar kubernetes.operator.job.upgrade.last-state.max.allowed.checkpoint.age. Se o ponto de verificação for mais antigo que o valor configurado, um ponto de salvamento será usado para trabalhos íntegros. Isso não é compatível com o modo Sessão.

Ponto de salvamento

Use o ponto de salvamento para atualização, fornecendo segurança máxima e a possibilidade de servir como ponto de backup ou bifurcação. O ponto de salvamento será criado durante o processo de atualização. Observe que o trabalho do Flink precisa estar em execução para permitir que o ponto de salvamento seja criado. Se o trabalho não estiver íntegro, o ponto de verificação mais recente será usado (a menos que kubernetes.operator.job.upgrade.last-state-fallback.enabled esteja definido como false). Se o ponto de verificação mais recente não estiver disponível, a atualização do trabalho falhará.