Manutenzione e risoluzione dei problemi - Amazon EMR

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à.

Manutenzione e risoluzione dei problemi

Le sezioni seguenti illustrano come mantenere i processi Flink di lunga durata e forniscono indicazioni su come risolvere alcuni problemi comuni.

Le applicazioni Flink sono in genere progettate per funzionare per lunghi periodi di tempo come settimane, mesi o persino anni. Come per tutti i servizi a lunga durata, le applicazioni di streaming Flink devono essere mantenute. La manutenzione include correzioni di bug, miglioramenti e migrazione a un cluster Flink di una versione successiva.

Quando le specifiche cambiano per le risorse FlinkDeployment e FlinkSessionJob, è necessario aggiornare l'applicazione in esecuzione. A tale scopo, l'operatore interrompe il processo in esecuzione (a meno che non sia già sospeso) e lo ridistribuisce con le specifiche più recenti e, per le applicazioni stateful, con lo stato dell'esecuzione precedente.

Gli utenti controllano come gestire lo stato quando le applicazioni stateful si interrompono e vengono ripristinate con l'impostazione upgradeMode di JobSpec.

Introduzione opzionale

Stateless

Aggiornamenti di applicazioni stateless da stato vuoto.

Ultimo stato

Gli aggiornamenti rapidi in qualsiasi stato dell'applicazione (anche in caso di processi non riusciti) non richiedono un processo integro in quanto utilizzano sempre l'ultimo checkpoint corretto. Il ripristino manuale può essere necessario in caso di perdita dei metadati HA. Per limitare il periodo di tempo in cui il processo può tornare indietro quando sceglie l'ultimo checkpoint, è possibile configurare kubernetes.operator.job.upgrade.last-state.max.allowed.checkpoint.age. Se il checkpoint è più vecchio del valore configurato, al posto di un processo integro verrà utilizzato un savepoint. Questa funzionalità non è supportata in modalità Sessione.

Savepoint

Per l'aggiornamento puoi utilizzare un savepoint, che offre la massima sicurezza e la possibilità di fungere da punto di backup/fork. Il savepoint verrà creato durante il processo di aggiornamento. Nota che il processo Flink deve essere in esecuzione per consentire la creazione del savepoint. Se il lavoro non è integro, verrà utilizzato l'ultimo checkpoint (a meno che kubernetes.operator.job.upgrade). last-state-fallback.enabled è impostato su false). Se l'ultimo checkpoint non è disponibile, l'aggiornamento del processo avrà esito negativo.

La presente sezione descrive come risolvere i problemi con Amazon EMR su EKS. Per informazioni sulla risoluzione di problemi generali con Amazon EMR, consulta Risoluzione dei problemi di un cluster nella Guida per la gestione di Amazon EMR.

Mappatura delle risorse non trovata durante l'installazione del grafico Helm

Durante l'installazione del grafico Helm, potresti visualizzare il seguente messaggio di errore.

Error: INSTALLATION FAILED: pulling from host 1234567890.dkr.ecr.us-west-2.amazonaws.com failed with status code [manifests 6.13.0]: 403 Forbidden Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: [resource mapping not found for name: "flink-operator-serving-cert" namespace: "<the namespace to install your operator>" from "": no matches for kind "Certificate" in version "cert-manager.io/v1" ensure CRDs are installed first, resource mapping not found for name: "flink-operator-selfsigned-issuer" namespace: "<the namespace to install your operator>" " from "": no matches for kind "Issuer" in version "cert-manager.io/v1" ensure CRDs are installed first].

Per risolverlo, installa cert-manager per abilitare l'aggiunta del componente webhook. È necessario installare cert-manager in ogni cluster Amazon EKS che si utilizza.

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.12.0

Se visualizzi un errore access denied, conferma che il ruolo IAM per operatorExecutionRoleArn nel file grafico Helm values.yaml disponga delle autorizzazioni corrette. Verifica inoltre che il ruolo IAM in executionRoleArn nelle tue specifiche FlinkDeployment disponga delle autorizzazioni corrette.

Se il FlinkDeployment si blocca in uno stato di arresto, usa i seguenti passaggi per forzare l'eliminazione dell'implementazione:

  1. Modifica l'esecuzione dell'implementazione.

    kubectl edit -n Flink Namespace flinkdeployments/App Name
  2. Rimuovi questo finalizer.

    finalizers: - flinkdeployments.flink.apache.org/finalizer
  3. Elimina l'implementazione.

    kubectl delete -n Flink Namespace flinkdeployments/App Name