Ir para o conteúdo

Por que meu cluster do Amazon EMR é encerrado?

5 minuto de leitura
0

Meu cluster do Amazon EMR foi encerrado inesperadamente.

Resolução

O Amazon EMR armazena os logs de cluster em um bucket do Amazon Simple Storage Service (Amazon S3) que você especifica na inicialização do cluster. Por exemplo, s3://example-log-location/example-cluster-ID/node/example-EC2-instance-ID/.

Para identificar por que seu cluster do Amazon EMR foi encerrado, analise os logs de provisionamento do Amazon EMR armazenados no Amazon S3.

Erro “SHUTDOWN_STEP_FAILED (USER_ERROR)”

Ao enviar um trabalho em etapas no seu cluster do Amazon EMR, é possível especificar o comportamento de falha de etapa no parâmetro ActionOnFailure. Se você selecionar TERMINATE_CLUSTER ou TERMINATE_JOB_FLOW para o parâmetro ActionOnFailure, o cluster do Amazon EMR será encerrado e é possível ver a seguinte mensagem de erro do 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 esse erro, use a opção CONTINUE ou CANCEL_AND_WAIT no parâmetro ActionOnFailure ao enviar o trabalho em etapas.

Para obter mais informações, consulte StepConfig.

Erro “NO_SLAVES_LEFT (SYSTEM_ERROR)”

Você recebe o erro “No_SLAVES_LEFT” quando as seguintes condições são verdadeiras:

  • Você desativou a proteção contra encerramento no cluster do Amazon EMR.
  • Todos os nós centrais excederam a capacidade de armazenamento em disco, conforme especificado por um limite máximo de utilização na classificação de configuração do yarn-site. O limite máximo de utilização padrão é 90%.
  • A instância CORE é uma instância spot, e a instância spot é TERMINATED_BY_SPOT_DUE_TO_NO_CAPACITY.
    Para obter mais informações sobre o encerramento da instância spot, consulte Por que o Amazon EC2 interrompeu minha instância Spot?

Para resolver esse erro, realize as seguintes ações:

Erro “502 Bad Gateway”

O erro “502 Bad Gateway” ocorre quando os sistemas internos do Amazon EMR não conseguem alcançar o nó primário por um período de tempo. Se você desativar a proteção contra encerramento, o Amazon EMR encerra o cluster.

Verifique os logs mais recentes do controlador de instância e os logs de estado da instância quando o serviço do controlador de instância estiver inativo. Se a saída padrão do controlador de instância mostrar que a memória insuficiente encerrou o serviço, então o nó primário não tem memória adequada.

Veja a seguir um exemplo de mensagem de erro do log de estado da instância:

# 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 o erro anterior, inicie um cluster do Amazon EMR com um tipo de instância maior para ter mais memória para os requisitos do seu cluster. Além disso, limpe o espaço em disco para evitar interrupções de memória em clusters de longa duração. Para obter mais informações, consulte Como soluciono uma falha do nó primário com o erro “502 Bad Gateway” (502 gateway incorreto) ou “504 Gateway Time-out” (504 tempo limite do gateway) no Amazon EMR?

Erro “KMS_ISSUE (USER_ERROR)”

Ao usar uma configuração de segurança do Amazon EMR para criptografar um dispositivo raiz e volumes de armazenamento do Amazon EBS, o perfil deve ter as permissões adequadas. Se as permissões necessárias estiverem ausentes, você recebe a seguinte mensagem de erro no 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 o erro anterior, certifique-se de que as configurações de segurança usadas para criptografar o dispositivo raiz e os volumes de armazenamento do Amazon EBS tenham as permissões necessárias. Certifique-se também de que o perfil de serviço do Amazon EMR (EMR_DefaultRole_V2) tenha permissões para usar a chave especificada do AWS Key Management Service (AWS KMS).

Erro “Terminated with errors, The master node was terminated by user”

Quando o nó primário do cluster do Amazon EMR parar por qualquer motivo, o cluster será encerrado com o erro “The master node was terminated by user”.

Você recebe a seguinte mensagem de erro no 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
},

Como a interrupção dos nós primários ou de todos os nós principais do Amazon EMR leva ao encerramento do cluster, não interrompa nem reinicie os nós do cluster.

Observação: seus clusters do Amazon EMR podem ser encerrados por outros motivos que não os incluídos neste artigo. Para obter mais informações, consulte Erros de recursos durante as operações de cluster do Amazon EMR.

AWS OFICIALAtualizada há 7 meses