Résolution des problèmes - Amazon EMR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Résolution des problèmes

Cette section explique comment résoudre les problèmes liés à Amazon EMR surEKS. Pour plus d'informations sur la manière de résoudre les problèmes généraux liés à AmazonEMR, consultez la section Résolution des problèmes liés à un cluster dans le Guide de EMRgestion Amazon.

Le mappage des ressources est introuvable lors de l'installation des Charts de Helm

Le message d'erreur suivant peut s'afficher lorsque vous installez les Charts de Helm.

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

Pour résoudre cette erreur, installez cert-manager pour activer l'ajout du composant webhook. Vous devez installer cert-manager à chaque EKS cluster Amazon que vous utilisez.

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

Si vous voyez un accès refusé erreur, vérifiez que le IAM rôle pour operatorExecutionRoleArn dans le values.yaml fichier graphique Helm dispose des autorisations correctes. Assurez-vous également que le IAM rôle executionRoleArn indiqué dans votre FlinkDeployment spécification dispose des autorisations appropriées.

Si votre FlinkDeployment est bloqué à l'état arrêté, suivez les étapes suivantes pour forcer la suppression du déploiement :

  1. Modifiez l'exécution du déploiement.

    kubectl edit -n Flink Namespace flinkdeployments/App Name
  2. Supprimez ce finalisateur.

    finalizers: - flinkdeployments.flink.apache.org/finalizer
  3. Supprimez le déploiement.

    kubectl delete -n Flink Namespace flinkdeployments/App Name

Si vous exécutez une application Flink dans le cadre d'un opt-in Région AWS, les erreurs suivantes peuvent s'afficher :

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==)

Pour corriger ces erreurs, utilisez la configuration suivante dans votre fichier de FlinkDeployment définition.

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

Nous vous recommandons également d'utiliser le fournisseur SDKv2 d'informations d'identification :

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

Si vous souhaitez utiliser le fournisseur SDKv1 d'informations d'identification, assurez-vous que votre région d'inscription est SDK compatible. Pour plus d'informations, consultez le aws-sdk-java GitHub référentiel.

S3 AWSBadRequestExceptionSi vous exécutez des SQL instructions Flink dans une région optionnelle, assurez-vous de définir la configuration fs.s3a.endpoint.region: OPT_IN_AWS_REGION_NAME dans vos spécifications de configuration Flink.

Pour les EMR versions 6.15.0 à 7.2.0 d'Amazon, les messages d'erreur suivants peuvent s'afficher lorsque vous exécutez une tâche de session Flink dans les régions CN. Il s'agit notamment de la Chine (Pékin) et de la Chine (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":{}}]}

Il existe une prise de conscience de ce problème. L'équipe travaille à la correction des opérateurs Flink pour toutes ces versions. Toutefois, avant de terminer le correctif, pour corriger cette erreur, vous devez télécharger le diagramme de barre de l'opérateur Flink, le décompresser (extraire le fichier compressé) et apporter des modifications de configuration dans le graphique de barre.

Les étapes spécifiques sont les suivantes :

  1. Accédez, en particulier, aux répertoires dans votre dossier local pour le graphique de barre, et exécutez la ligne de commande suivante pour extraire le graphique de barre et le décompresser (extraire).

    helm pull oci://public.ecr.aws/emr-on-eks/flink-kubernetes-operator \ --version $VERSION \ --namespace $NAMESPACE
    tar -zxvf flink-kubernetes-operator-$VERSION.tgz
  2. Accédez au dossier Helm Chart et trouvez le templates/flink-operator.yaml fichier.

  3. Recherchez flink-operator-config ConfigMap et ajoutez la fs.s3a.endpoint.region configuration suivante dans leflink-conf.yaml. Par exemple :

    {{- 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 }}
  4. Installez le tableau de bord local et exécutez votre tâche.