View a markdown version of this page

Fehlerbehebung - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Fehlerbehebung

In diesem Abschnitt wird beschrieben, wie Sie Probleme mit Amazon EMR in EKS beheben. Informationen zur Behebung allgemeiner Probleme mit Amazon EMR finden Sie unter Fehlerbehebung eines Clusters im Verwaltungshandbuch von Amazon EMR.

Bei der Installation des Helm-Charts wurde keine Ressourcenzuweisung gefunden

Bei der Installation des Helm-Charts wird möglicherweise die folgende Fehlermeldung angezeigt.

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

Um diesen Fehler zu beheben, installieren Sie cert-manager, um das Hinzufügen der Webhook-Komponente zu ermöglichen. Sie müssen cert-manager die Installation auf jedem Amazon-EKS-Cluster durchführen, den Sie verwenden.

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

Wenn Sie einen access denied Fehler sehen, vergewissern Sie sich, dass die IAM-Rolle für operatorExecutionRoleArn in der values.yaml-Helm-Chart-Datei über die richtigen Berechtigungen verfügt. Stellen Sie außerdem sicher, dass die in Ihrer FlinkDeployment-Spezifikation unter executionRoleArn angegebene IAM-Rolle über die richtigen Berechtigungen verfügt.

Wenn Ihr FlinkDeployment im angehaltenen Zustand stehen bleibt, führen Sie die folgenden Schritte aus, um das Löschen der Bereitstellung zu erzwingen:

  1. Bearbeiten Sie den Bereitstellungslauf.

    kubectl edit -n Flink Namespace flinkdeployments/App Name
  2. Entfernen Sie diesen Finalizer.

    finalizers: - flinkdeployments.flink.apache.org/finalizer
  3. Löschen Sie die Bereitstellung.

    kubectl delete -n Flink Namespace flinkdeployments/App Name

Wenn Sie eine Flink-Anwendung in einem Opt-In ausführen AWS-Region, werden möglicherweise die folgenden Fehler angezeigt:

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

Verwenden Sie die folgende Konfiguration in Ihrer FlinkDeployment Definitionsdatei, um diese Fehler zu beheben.

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

Wir empfehlen außerdem, den Anbieter für SDKv2 Anmeldeinformationen zu verwenden:

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

Wenn Sie den Anbieter für SDKv1 Anmeldeinformationen verwenden möchten, stellen Sie sicher, dass Ihr SDK Ihre Opt-in-Region unterstützt. Weitere Informationen finden Sie im aws-sdk-java GitHub Repository.

Wenn Sie S3 AWSBadRequestException bei der Ausführung von Flink SQL-Anweisungen in einer Opt-in-Region erhalten, stellen Sie sicher, dass Sie die Konfiguration fs.s3a.endpoint.region: OPT_IN_AWS_REGION_NAME in Ihrer Flink-Konfigurationsspezifikation festlegen.

Bei den Amazon EMR-Versionen 6.15.0 — 7.2.0 können die folgenden Fehlermeldungen auftreten, wenn Sie einen Flink-Sitzungsjob in CN-Regionen ausführen. Dazu gehören China (Peking) und China (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":{}}]}

Es besteht ein Bewusstsein für dieses Problem. Das Team arbeitet daran, die Flink-Operatoren für all diese Release-Versionen zu patchen. Bevor wir den Patch fertigstellen, müssen Sie zur Behebung dieses Fehlers jedoch das Flink-Operator-Helmdiagramm herunterladen, es entpacken (die komprimierte Datei extrahieren) und Konfigurationsänderungen im Helmdiagramm vornehmen.

Die spezifischen Schritte sind die folgenden:

  1. Wechseln Sie zu Ihrem lokalen Ordner für das Helm-Diagramm, ändern Sie insbesondere die Verzeichnisse in, und führen Sie die folgende Befehlszeile aus, um das Helmdiagramm abzurufen und zu entpacken (zu extrahieren).

    helm pull oci://public.ecr.aws/emr-on-eks/flink-kubernetes-operator \ --version $VERSION \ --namespace $NAMESPACE
    tar -zxvf flink-kubernetes-operator-$VERSION.tgz
  2. Gehen Sie in den Helmchart-Ordner und suchen Sie die templates/flink-operator.yaml Datei.

  3. Suchen Sie die flink-operator-config ConfigMap und fügen Sie die folgende fs.s3a.endpoint.region Konfiguration in der hinzuflink-conf.yaml. Beispiel:

    {{- 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. Installieren Sie das lokale Helmdiagramm und führen Sie Ihren Job aus.