翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
トラブルシューティング
このセクションでは、Amazon EMR on EKS に関する問題をトラブルシューティングする方法について説明します。Amazon EMR に関する一般的な問題をトラブルシューティングする方法については、「Amazon EMR 管理ガイド」の「Troubleshoot a cluster」を参照してください。
Amazon EMR on EKS での Apache Flink のトラブルシューティング
Helm チャートのインストール時にリソースマッピングが見つからない
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].
このエラーを解決するには、cert-manager をインストールして、ウェブフックコンポーネントを追加できるようにします。使用する Amazon EKS クラスターごとに cert-manager をインストールする必要があります。
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.12.0
AWS のサービス アクセス拒否エラー
access denied エラーが表示された場合は、Helm チャート values.yaml ファイル内の operatorExecutionRoleArn の IAM ロールに適切な権限が付与されていることを確認します。また、FlinkDeployment 仕様の executionRoleArn に記載されている IAM ロールに適切な権限が付与されていることを確認します。
FlinkDeployment がスタックしている
FlinkDeployment がずっと停止した状態になる場合は、次の手順を使用して、問題のデプロイを強制的に削除します。
-
デプロイ実行を編集します。
kubectl edit -nFlink Namespaceflinkdeployments/App Name -
このファイナライザーを削除します。
finalizers: - flinkdeployments.flink.apache.org/finalizer -
デプロイを削除します。
kubectl delete -nFlink Namespaceflinkdeployments/App Name
オプトインで Flink アプリケーションを実行するときの s3a AWSBadRequestException の問題 AWS リージョン
オプトイン AWS リージョンで Flink アプリケーションを実行すると、次のエラーが表示されることがあります。
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==)
これらのエラーを修正するには、FlinkDeployment 定義ファイルで次の設定を使用します。
spec: flinkConfiguration: taskmanager.numberOfTaskSlots: "2" fs.s3a.endpoint.region:OPT_IN_AWS_REGION_NAME
また、SDKv2 認証情報プロバイダーを使用することをお勧めします。
fs.s3a.aws.credentials.provider: software.amazon.awssdk.auth.credentials.WebIdentityTokenFileCredentialsProvider
SDKv1 認証情報プロバイダーを使用する場合は、SDK がオプトインリージョンをサポートしていることを確認してください。詳細については、「aws-sdk-java GitHub リポジトリ
オプトインリージョンで Flink SQL ステートメントを実行するときに S3 AWSBadRequestException が表示される場合は、必ず flink 設定仕様で設定 fs.s3a.endpoint.region: を設定してください。OPT_IN_AWS_REGION_NAME
CN リージョンで Flink セッションジョブを実行するときの S3A AWSBadRequestException
Amazon EMR リリース 6.15.0~7.2.0 では、CN リージョンで Flink セッションジョブを実行すると、次のエラーメッセージが表示されることがあります。これには中国 (北京) および中国 (寧夏) が含まれます。
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":{}}]}
この問題は認識されています。チームは、これらのすべてのリリースバージョンで flink オペレータのパッチ適用に取り組んでいます。ただし、パッチが完了する前にこのエラーを修正する場合は、flink オペレータの helm チャートをダウンロードして解凍 (圧縮されたファイルを抽出) し、helm チャートの設定を変更する必要があります。
具体的な手順は次のとおりです。
特にディレクトリを helm チャートのローカルフォルダに変更し、次のコマンドラインを実行して helm チャートをプルして解凍 (抽出) します。
helm pull oci://public.ecr.aws/emr-on-eks/flink-kubernetes-operator \ --version $VERSION \ --namespace $NAMESPACEtar -zxvf flink-kubernetes-operator-$VERSION.tgzhelm チャートフォルダに移動し、
templates/flink-operator.yamlファイルを見つけます。ConfigMap
flink-operator-configを検索し、次のfs.s3a.endpoint.region設定をflink-conf.yamlに追加します。例えば、次のようになります。{{- 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 }}ローカル helm チャートをインストールし、ジョブを実行します。