Saltar al contenido

¿Por qué termina mi clúster de Amazon EMR?

5 minutos de lectura
0

Mi clúster de Amazon EMR se terminó inesperadamente.

Resolución

Amazon EMR almacena los registros del clúster en un bucket de Amazon Simple Storage Service (Amazon S3) que especificas al iniciar el clúster. Por ejemplo, s3://example-log-location/example-cluster-ID/node/example-EC2-instance-ID/.

Para identificar el motivo por el que terminaste tu clúster de Amazon EMR, revisa los registros de aprovisionamiento de Amazon EMR almacenados en Amazon S3.

Error «SHUTDOWN_STEP_FAILED (USER_ERROR)»

Al enviar un trabajo escalonado en tu clúster de Amazon EMR, puedes especificar el comportamiento de error escalonado en el parámetro ActionOnFailure. Si seleccionas TERMINATE_CLUSTER o TERMINATE_JOB_FLOW para el parámetro ActionOnFailure, el clúster de Amazon EMR termina y es posible que aparezca el siguiente mensaje de error de AWS CloudTrail:

«{ "severity": "ERROR", "actionOnFailure": "TERMINATE_JOB_FLOW", "stepId": "s-2I0G########", "name": "Example Step", "clusterId": "j-2YJ#######", "state": "FAILED", "message": "Step s-2I0G####### (Example Step) in Amazon EMR cluster j-2YJ####### failed at 202#-1#-0# 0#:## UTC." }»

Para evitar este error, utiliza las opciones CONTINUE o CANCEL_AND_WAIT del parámetro ActionOnFailure al enviar el trabajo escalonado.

Para obtener más información, consulta StepConfig.

Error «NO_SLAVES_LEFT (SYSTEM_ERROR)»

Recibirás el error «No_SLAVES_LEFT» cuando se cumplen las siguientes condiciones:

  • Has desactivado la protección de terminación en el clúster de Amazon EMR.
  • Todos los nodos principales superan la capacidad de almacenamiento en disco, según lo especificado en un umbral de utilización máximo en la clasificación de configuración de yarn-site. El umbral de utilización máximo predeterminado es del 90 %.
  • La instancia CORE es una instancia de spot y la instancia de spot es TERMINATED_BY_SPOT_DUE_TO_NO_CAPACITY.
    Para obtener información sobre la terminación de instancias de spot, consulta ¿Por qué Amazon EC2 interrumpió mi instancia de spot?

Para resolverlo, haz lo siguiente:

Error «502 Bad Gateway»

Cuando los sistemas internos de Amazon EMR no pueden llegar al nodo principal durante un periodo de tiempo, aparece el error «502 Bad Gateway». Si desactivas la protección de terminación, Amazon EMR termina el clúster.

Cuando el servicio del controlador de instancias esté inactivo, comprueba los registros del controlador de instancias y los registros del estado de la instancia más recientes. Si el resultado estándar del controlador de instancias muestra que la falta de memoria terminó el servicio, entonces el nodo principal carece de la memoria adecuada.

A continuación se muestra un ejemplo de mensaje de error del registro de estado de la instancia:

# dump instance controller stdouttail -n 100 /emr/instance-controller/log/instance-controller.out
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007fb46c7c8000, 12288, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 12288 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmp/hs_err_pid16110.log
# whats memory usage look like
free -m
              total        used        free      shared  buff/cache   available
Mem:          15661       15346         147           0         167          69
Swap:             0           0           0

Para evitar el error anterior, inicia un clúster de Amazon EMR con un tipo de instancia más grande para aprovechar más memoria para los requisitos del clúster. Además, limpia el espacio en disco para evitar interrupciones de memoria en los clústeres de ejecución prolongada. Para obtener más información, consulta ¿Cómo puedo solucionar un error del nodo principal con el mensaje «502 Bad Gateway» o «504 Gateway Time-out» en Amazon EMR?

Error «KMS_ISSUE (USER_ERROR)»

Al utilizar una configuración de seguridad de Amazon EMR para cifrar un dispositivo raíz de Amazon EBS y los volúmenes de almacenamiento, el rol debe tener los permisos adecuados. Si faltan los permisos necesarios, recibirás el siguiente mensaje de error en AWS CloudTrail:

«The EMR Service Role must have the kms:GenerateDataKey* and kms:ReEncrypt* permission for the KMS key configuration when you enabled EBS encryption by default. You can retrieve that KMS key's ID by using the ec2:GetEbsDefaultKmsKeyId API».

Para evitar el error anterior, asegúrese de que las configuraciones de seguridad que utilizas para cifrar el dispositivo raíz de Amazon EBS y los volúmenes de almacenamiento tengan los permisos necesarios. Asegúrate de que el rol de servicio de Amazon EMR (EMR_DefaultRole_V2) tenga permisos para usar la clave de AWS Key Management Service (AWS KMS) especificada.

Error «Terminated with errors, The master node was terminated by user»

Cuando el nodo principal del clúster de Amazon EMR se detiene por cualquier motivo, el clúster termina con el error «The master node was terminated by user».

Recibes el siguiente mensaje de error en AWS CloudTrail:

eventTime": "2023-01-18T08:07:02Z",
    "eventSource": "ec2.amazonaws.com",
    "eventName": "StopInstances",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "52.##.##.##",
    "userAgent": "AWS Internal",
    "requestParameters": {
        "instancesSet": {
            "items": [
                {
                    "instanceId": "i-##f6c5###########"
                }
            ]
        },
        "force": false
},

Dado que detener el nodo principal o todos los nodos centrales de Amazon EMR provoca la terminación del clúster, no detengas ni reinicies los nodos del clúster.

Nota: Tus clústeres de Amazon EMR pueden terminar por motivos distintos de los incluidos en este artículo. Para obtener más información, consulta Errores de recursos durante las operaciones del clústeres de Amazon EMR.

OFICIAL DE AWSActualizada hace 8 meses