Por que meu cluster EMR foi encerrado?
Meu cluster do Amazon EMR foi encerrado inesperadamente.
Resolução
Analise os logs de provisionamento do Amazon EMR armazenados no Amazon S3
Os logs de cluster do Amazon EMR são armazenados em um bucket do Amazon Simple Storage Service (Amazon S3) especificado na inicialização do cluster. Os logs são armazenados em s3://example-log-location/example-cluster-ID/node/example-EC2-instance-ID/.
Observação: substitua example-log-location, example-cluster-ID e example-EC2-instance-ID pela nomenclatura do seu sistema.
Veja a seguir uma lista de erros comuns:
SHUTDOWN_STEP_FAILED (USER_ERROR)
NO_SLAVES_LEFT (SYSTEM_ERROR)
The master failed: Error occurred: <html>??<head><title>502 Bad Gateway</title></head>??<body>??<center><h1>502 Bad Gateway</h1></center>??<hr><center>nginx/1.16.1</center>??</body>??</html>??
KMS_ISSUE (USER_ERROR)Terminated with errors, The master node was terminated by user.
Observação: os anteriores são os erros de encerramento mais comuns. Os clusters do EMR podem ser encerrados devido a erros diferentes dos listados. Para mais informações, consulte Resource errors (Erros de recursos).
SHUTDOWN_STEP_FAILED (USER_ERROR)
Ao enviar um trabalho em etapas no cluster do EMR, você pode especificar o comportamento da falha da etapa no parâmetro ActionOnFailure. O cluster do EMR será encerrado se você selecionar TERMINATE_CLUSTER ou TERMINATE_JOB_FLOW para o parâmetro ActionOnFailure. Para mais informações, consulte a StepConfig.
Veja a seguir um exemplo de mensagem de erro do AWS CloudTrail:
{ "severity": "ERROR", "actionOnFailure": "TERMINATE_JOB_FLOW", "stepId": "s-2I0GXXXXXXXX", "name": "Example Step", "clusterId": "j-2YJXXXXXXX", "state": "FAILED", "message": "Step s-2I0GXXXXXXXX (Example Step) in Amazon EMR cluster j-2YJXXXXXXX failed at 202X-1X-0X 0X:XX UTC." }
Para evitar esse erro, use a opção CONTINUE ou CANCEL_AND_WAIT no parâmetro ActionOnFailure ao enviar o trabalho de etapa.
NO_SLAVES_LEFT (SYSTEM_ERROR)
Esse erro ocorre quando:
- A proteção contra encerramento está desativada no cluster do EMR.
- Todos os nós centrais excedem 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 informações sobre o encerramento da instância spot, consulte Why did Amazon EC2 interrupt my Spot Instance? (Por que o Amazon EC2 interrompeu minha instância spot?)
Para mais informações sobre o erro NO_SLAVE_LEFT, consulte Cluster encerrado com NO_SLAVE_LEFT e nós centrais FAILED_BY_MASTER.
Veja a seguir um exemplo de mensagem de erro de controlador de instância:
202X-0X-0X 1X:5X:5X,968 INFO Poller: InstanceJointStatusMap contains X entries (DD:5 R:3): i-0e336xxxxxxxxxxxx 25d21h R 25d21h ig-22 ip-1x-2xx-xx-1xx.local.xxx.com I: 52s Y:U 98s c: 0 am: 0 H:R 1.1%Yarn unhealthy Reason : 1/4 local-dirs usable space is below configured utilization percentage/no more usable space [ /mnt/yarn : used space above threshold of 90.0% ] ; 1/1 log-dirs usable space is below configured utilization percentage/no more usable space [ /var/log/hadoop-yarn/containers : used space above threshold of 90.0% ]
Para resolver esse erro:
- Mantenha a proteção contra encerramento ON para seus clusters. Para mais informações, consulte Termination protection and unhealthy YARN nodes (Proteção contra encerramento e nós YARN não íntegros).
- Use as políticas de escalabilidade do Amazon EMR (escalabilidade automática e escalabilidade gerenciada) para escalar os nós centrais com base em seus requisitos. Para mais informações, consulte Use cluster scaling (Usar escalabilidade de cluster).
- Adicione mais capacidade do Amazon Elastic Block Storage (Amazon EBS) ao seu cluster. Para mais informações, consulte How can I resolve "Exit status: -100 (Como posso resolver erros “Status de saída: -100). Diagnóstico: Contêiner liberado em um nó*lost*” no Amazon EMR?
- Crie um alarme para a métrica MRUnHealthyNodes do Amazon CloudWatch. Você pode configurar uma notificação para esse alarme para avisá-lo sobre nós não íntegros antes que o tempo limite de 45 minutos seja atingido. Para mais informações, consulte Create a CloudWatch alarm based on a static threshold (Criar um alarme do CloudWatch com base em um limite estático).
Gateway 502 inválido
O erro Gateway 502 inválido ocorre quando os sistemas internos do Amazon EMR não conseguem alcançar o nó primário por um período de tempo. O Amazon EMR será encerrado se a proteção contra encerramento estiver desativada. Verifique os logs mais recentes do controlador de instância e os logs do estado da instância quando o serviço do controlador de instância estiver inativo. A saída padrão do controlador de instância mostra que o serviço foi encerrado porque não há memória suficiente. Isso indica que o nó primário do cluster está com pouca memória.
Veja a seguir um exemplo de mensagem de erro do log de estado da instância:
# dump instance controller stdout tail -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 EMR com um tipo de instância maior para aproveitar 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 mais informações, consulte How do I troubleshoot primary node failure with error "502 Bad Gateway" or "504 Gateway Time-out" in Amazon EMR? (Como soluciono a falha do nó primário com o erro “Gateway 502 inválido” ou “Tempo limite do gateway 504” no Amazon EMR)
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, a função deve ter as permissões adequadas. Se as permissões necessárias estiverem faltando, você verá o erro KMS_ISSUE.
Veja a seguir um exemplo de mensagem de erro do 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. Para essas configurações, certifique-se 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).
Encerrado com erros, o nó principal foi encerrado pelo usuário
Quando o nó primário do cluster EMR parar por qualquer motivo, o cluster será encerrado com o erro O nó principal foi encerrado pelo usuário.
Veja a seguir um exemplo de mensagem de erro do AWS CloudTrail:
eventTime": "2023-01-18T08:07:02Z", "eventSource": "ec2.amazonaws.com", "eventName": "StopInstances", "awsRegion": "us-east-1", "sourceIPAddress": "52.xx.xx.xx", "userAgent": "AWS Internal", "requestParameters": { "instancesSet": { "items": [ { "instanceId": "i-xxf6c5xxxxxxxxxxx" } ] }, "force": false },
Como interromper o nó primário ou todos os nós centrais do EMR leva ao encerramento do cluster, evite interromper ou reinicializar os nós do cluster.
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há um ano