Solución de problemas
En esta sección, se describe cómo solucionar problemas con Amazon EMR en EKS. Para obtener información sobre cómo solucionar problemas generales con Amazon EMR, consulte Solucionar problemas de clústeres en la Guía de administración de Amazon EMR.
Solución de problemas de Apache Flink en Amazon EMR en EKS
No se encontró la asignación de recursos al instalar el gráfico de Helm
Es posible que aparezca el siguiente mensaje de error cuando instale el gráfico 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].
Para resolver este error, instale cert-manager para poder agregar el componente webhook. Debe instalar cert-manager en cada clúster de Amazon EKS que utilice.
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.12.0
Error de acceso denegado del Servicio de AWS
Si ve un error de tipo access denied, confirme que el rol de IAM incluido para operatorExecutionRoleArn
en el archivo values.yaml
de gráfico de Helm tiene los permisos correctos. Asegúrese también de que el rol de IAM asignado a executionRoleArn
en su especificación FlinkDeployment
tenga los permisos correctos.
FlinkDeployment
está atascada
Si se bloquea la FlinkDeployment
, siga estos pasos para forzar la eliminación de la implementación:
-
Edite la ejecución de la implementación.
kubectl edit -n
Flink Namespace
flinkdeployments/App Name
-
Elimine este finalizador.
finalizers: - flinkdeployments.flink.apache.org/finalizer
-
Elimine la implementación.
kubectl delete -n
Flink Namespace
flinkdeployments/App Name
Un problema AWSBadRequestException de s3a al ejecutar una aplicación Flink en una opción de Región de AWS
Si ejecuta una aplicación Flink en una opción de Región de AWS, es posible que vea los siguientes errores:
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==)
Para corregir estos errores, utilice la siguiente configuración en el archivo de definición FlinkDeployment
.
spec: flinkConfiguration: taskmanager.numberOfTaskSlots: "2" fs.s3a.endpoint.region:
OPT_IN_AWS_REGION_NAME
También recomendamos que utilice el proveedor de credenciales del SDKv2:
fs.s3a.aws.credentials.provider: software.amazon.awssdk.auth.credentials.WebIdentityTokenFileCredentialsProvider
Si quiere usar el proveedor de credenciales del SDKv1, asegúrese de que su SDK sea compatible con la región en la que ha optado. Para más información, consulte el repositorio de GitHub de aws-sdk-java
Si obtiene S3 AWSBadRequestException
cuando ejecuta instrucciones SQL de Flink en una región opcional, asegúrese de establecer la configuración fs.s3a.endpoint.region:
en sus especificaciones de configuración de Flink.OPT_IN_AWS_REGION_NAME
AWSBadRequestException de S3A al ejecutar un trabajo de sesión de Flink en regiones de CN
En el caso de las versiones 6.15.0 a 7.2.0 de Amazon EMR, es posible que aparezca los siguientes mensajes de error al ejecutar un trabajo de sesión de Flink en las regiones de CN. Estas incluyen China (Pekín) y 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":{}}]}
Existe conciencia sobre este problema. El equipo está trabajando para parchear los operadores de Flink en todas estas versiones de lanzamiento. Sin embargo, antes de finalizar el parche, para corregir este error, necesita descargar el gráfico de Helm del operador de Flink, descomprimirlo (extraer el archivo comprimido) y realizar cambios de configuración en el gráfico de Helm.
A continuación se indican los pasos a seguir:
Cambie a su carpeta local para el gráfico de Helm, específicamente cambie los directorios a, y ejecute la siguiente línea de comandos para extraer el gráfico de Helm y descomprimirlo (extraerlo).
helm pull oci://public.ecr.aws/emr-on-eks/flink-kubernetes-operator \ --version $VERSION \ --namespace $NAMESPACE
tar -zxvf flink-kubernetes-operator-$VERSION.tgz
Vaya a la carpeta del gráfico de Helm y busque el archivo
templates/flink-operator.yaml
.Busque el ConfigMap de
flink-operator-config
y añada la siguiente configuración defs.s3a.endpoint.region
en elflink-conf.yaml
. Por ejemplo:{{- 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 }}
Instale el gráfico de Helm local y ejecute su trabajo.