

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

# Risoluzione dei problemi
<a name="jobruns-flink-troubleshoot"></a>

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](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-troubleshoot.html) nella *Guida alla gestione di Amazon EMR*.
+ [Risoluzione dei problemi relativi ai lavori che utilizzano PersistentVolumeClaims (PVC)](permissions-for-pvc.md)
+ [Risoluzione dei problemi relativi al dimensionamento automatico verticale di Amazon EMR su EKS](troubleshooting-vas.md)
+ [Risoluzione dei problemi relativi all'operatore Amazon EMR su EKS](troubleshooting-sparkop.md)

## Risoluzione dei problemi di Apache Flink su Amazon EMR su EKS
<a name="jobruns-flink-troubleshooting-apache-flink"></a>

### Mappatura delle risorse non trovata durante l'installazione del grafico Helm
<a name="w2aac21c21b7b7b3"></a>

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
```

### Servizio AWS errore di accesso negato
<a name="jobruns-flink-troubleshooting-access-denied"></a>

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.

### `FlinkDeployment` è bloccato
<a name="jobruns-flink-troubleshooting-stuck"></a>

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}}
   ```

1. Rimuovi questo finalizer.

   ```
   finalizers:
     - flinkdeployments.flink.apache.org/finalizer
   ```

1. Elimina l'implementazione.

   ```
   kubectl delete -n {{Flink Namespace}} flinkdeployments/{{App Name}}
   ```

### AWSBadRequestException problema s3a quando si esegue un'applicazione Flink in un opt-in Regione AWS
<a name="jobruns-flink-troubleshooting-optin-region"></a>

Se esegui un'applicazione Flink in un [opt-in Regione AWS](https://docs.aws.amazon.com/controltower/latest/userguide/opt-in-region-considerations.html), potresti visualizzare i seguenti errori:

```
Caused by: org.apache.hadoop.fs.s3a.AWSBadRequestException: getFileStatus on 
s3://flink.txt: com.amazonaws.services.s3.model.AmazonS3Exception: Bad Request 
(Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID: ABCDEFGHIJKL; S3 Extended Request ID:
ABCDEFGHIJKLMNOP=; Proxy: null), S3 Extended Request ID: ABCDEFGHIJKLMNOP=:400 Bad Request: Bad Request 
(Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID: ABCDEFGHIJKL; S3 Extended Request ID: ABCDEFGHIJKLMNOP=; Proxy: null)
```

```
Caused by: org.apache.hadoop.fs.s3a.AWSBadRequestException: getS3Region on flink-application: software.amazon.awssdk.services.s3.model.S3Exception: null 
(Service: S3, Status Code: 400, Request ID: ABCDEFGHIJKLMNOP, Extended Request ID: ABCDEFGHIJKLMNOPQRST==):null: null 
(Service: S3, Status Code: 400, Request ID: ABCDEFGHIJKLMNOP, Extended Request ID: AHl42uDNaTUFOus/5IIVNvSakBcMjMCH7dd37ky0vE6jhABCDEFGHIJKLMNOPQRST==)
```

Per correggere questi errori, utilizzate la seguente configurazione nel file di `FlinkDeployment` definizione.

```
spec:
  flinkConfiguration:
    taskmanager.numberOfTaskSlots: "2"
    fs.s3a.endpoint.region: {{OPT_IN_AWS_REGION_NAME}}
```

Ti consigliamo inoltre di utilizzare il provider di SDKv2 credenziali:

```
fs.s3a.aws.credentials.provider: software.amazon.awssdk.auth.credentials.WebIdentityTokenFileCredentialsProvider
```

Se desideri utilizzare il provider di SDKv1 credenziali, assicurati che l'SDK supporti la tua regione di attivazione. [Per ulteriori informazioni, consulta il repository. aws-sdk-java GitHub ](https://github.com/aws/aws-sdk-java)

Se ottieni `S3 AWSBadRequestException` quando esegui le istruzioni SQL Flink in una regione con attivazione, assicurati di impostare la configurazione `fs.s3a.endpoint.region: {{OPT_IN_AWS_REGION_NAME}}` nelle specifiche di configurazione di flink.

### S3A AWSBad RequestException quando si esegue un job di sessione Flink nelle regioni CN
<a name="jobruns-flink-troubleshooting-optin-region"></a>

Per le versioni 6.15.0 - 7.2.0 di Amazon EMR, potresti riscontrare i seguenti messaggi di errore quando esegui un processo di sessione Flink nelle regioni CN. Questi includono Cina (Pechino) e Cina (Ningxia):

```
Error:  {"type":"org.apache.flink.kubernetes.operator.exception.ReconciliationException","message":"org.apache.hadoop.fs.s3a.AWSBadRequestException: 
                    getFileStatus on s3://ABCDPath: software.amazon.awssdk.services.s3.model.S3Exception: null (Service: S3, Status Code: 400, Request ID: ABCDEFGH, Extended Request ID: 
                    ABCDEFGH:null: null (Service: S3, Status Code: 400, Request ID: ABCDEFGH, Extended Request ID: ABCDEFGH","additionalMetadata":{},"throwableList":
                    [{"type":"org.apache.hadoop.fs.s3a.AWSBadRequestException","message":"getFileStatus on s3://ABCDPath: software.amazon.awssdk.services.s3.model.S3Exception: 
                    null (Service: S3, Status Code: 400, Request ID: ABCDEFGH, Extended Request ID: ABCDEFGH:null: null (Service: S3, Status Code: 400, Request ID: ABCDEFGH, 
                    Extended Request ID: ABCDEFGH","additionalMetadata":{}},{"type":"software.amazon.awssdk.services.s3.model.S3Exception","message":"null (Service: S3, Status Code: 400, 
                    Request ID: ABCDEFGH, Extended Request ID: ABCDEFGH","additionalMetadata":{}}]}
```

C'è una consapevolezza di questo problema. Il team sta lavorando per applicare le patch agli operatori flink per tutte queste versioni di rilascio. Tuttavia, prima di completare la patch, per correggere questo errore, è necessario scaricare la tabella di comando degli operatori flink, decomprimerla (estrarre il file compresso) e apportare modifiche alla configurazione nella tabella di comando.

I passaggi specifici sono i seguenti:

1. Passa alla cartella locale del Helm Chart, in particolare cambia le directory, ed esegui la seguente riga di comando per estrarre il diagramma di comando e decomprimerlo (estrarlo).

   ```
   helm pull oci://public.ecr.aws/emr-on-eks/flink-kubernetes-operator \
   --version $VERSION \
   --namespace $NAMESPACE
   ```

   ```
   tar -zxvf flink-kubernetes-operator-$VERSION.tgz
   ```

1. Vai nella cartella Helm Chart e trova il file. `templates/flink-operator.yaml`

1. Trova `flink-operator-config` ConfigMap e aggiungi la seguente `fs.s3a.endpoint.region` configurazione in. `flink-conf.yaml` Esempio:

   ```
   {{- if .Values.defaultConfiguration.create }}
   apiVersion: v1
   kind: ConfigMap
   metadata:
     name: flink-operator-config
     namespace: {{ .Release.Namespace }}
     labels:
       {{- include "flink-operator.labels" . | nindent 4 }}
   data:
     flink-conf.yaml: |+
   fs.s3a.endpoint.region: {{ .Values.emrContainers.awsRegion }}
   ```

1. Installa la tabella di comando locale ed esegui il tuo lavoro.