Pemecahan Masalah - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pemecahan Masalah

Bagian ini menjelaskan cara memecahkan masalah dengan Amazon EMR di. EKS Untuk informasi tentang cara memecahkan masalah umum dengan AmazonEMR, lihat Memecahkan masalah klaster di Panduan Manajemen Amazon. EMR

Pemetaan sumber daya tidak ditemukan saat menginstal bagan Helm

Anda mungkin menemukan pesan galat berikut saat menginstal bagan 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].

Untuk mengatasi kesalahan ini, instal cert-manager untuk mengaktifkan penambahan komponen webhook. Anda harus menginstal cert-manager untuk setiap EKS cluster Amazon yang Anda gunakan.

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

Jika Anda melihat akses ditolak kesalahan, konfirmasikan bahwa IAM peran operatorExecutionRoleArn dalam values.yaml file bagan Helm memiliki izin yang benar. Pastikan juga IAM peran executionRoleArn di bawah FlinkDeployment spesifikasi Anda memiliki izin yang benar.

Jika Anda FlinkDeployment terhenti dalam keadaan tertangkap, gunakan langkah-langkah berikut untuk menghapus paksa penyebaran:

  1. Edit proses penerapan.

    kubectl edit -n Flink Namespace flinkdeployments/App Name
  2. Hapus finalizer ini.

    finalizers: - flinkdeployments.flink.apache.org/finalizer
  3. Hapus penyebaran.

    kubectl delete -n Flink Namespace flinkdeployments/App Name

Jika Anda menjalankan aplikasi Flink dalam opt-in Wilayah AWS, Anda mungkin melihat kesalahan berikut:

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

Untuk memperbaiki kesalahan ini, gunakan konfigurasi berikut dalam file FlinkDeployment definisi Anda.

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

Kami juga menyarankan Anda menggunakan penyedia SDKv2 kredensi:

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

Jika Anda ingin menggunakan penyedia SDKv1 kredensi, pastikan bahwa Anda SDK mendukung Wilayah keikutsertaan Anda. Untuk informasi lebih lanjut, lihat aws-sdk-java GitHub repositori.

Jika Anda mendapatkan S3 AWSBadRequestException ketika Anda menjalankan SQL pernyataan Flink di Wilayah keikutsertaan, pastikan Anda mengatur konfigurasi fs.s3a.endpoint.region: OPT_IN_AWS_REGION_NAME dalam spesifikasi konfigurasi flink Anda.

Untuk EMR rilis Amazon 6.15.0 - 7.2.0, Anda mungkin menemukan pesan galat berikut saat menjalankan tugas sesi Flink di wilayah CN. Ini termasuk China (Beijing) dan 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":{}}]}

Ada kesadaran akan masalah ini. Tim sedang bekerja untuk menambal operator flink untuk semua versi rilis ini. Namun, sebelum kita menyelesaikan tambalan, untuk memperbaiki kesalahan ini, Anda perlu mengunduh bagan helm operator flink, untar (ekstrak file terkompresi) dan buat perubahan konfigurasi di bagan helm.

Langkah-langkah spesifiknya adalah sebagai berikut:

  1. Ubah ke, secara khusus mengubah direktori ke, folder lokal Anda untuk bagan helm, dan jalankan baris perintah berikut untuk menarik bagan helm dan untar (ekstrak) itu.

    helm pull oci://public.ecr.aws/emr-on-eks/flink-kubernetes-operator \ --version $VERSION \ --namespace $NAMESPACE
    tar -zxvf flink-kubernetes-operator-$VERSION.tgz
  2. Masuk ke folder bagan helm dan temukan templates/flink-operator.yaml filenya.

  3. Temukan flink-operator-config ConfigMap dan tambahkan fs.s3a.endpoint.region konfigurasi berikut di fileflink-conf.yaml. Sebagai contoh:

    {{- 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. Instal bagan helm lokal dan jalankan pekerjaan Anda.