Falha no provisionamento do cluster do EMR - Amazon EMR

Falha no provisionamento do cluster do EMR

Há vários motivos para um cluster do Amazon EMR poder falhar ao iniciar. Veja aqui algumas maneiras de diagnosticar o problema.

Verificar os logs de provisionamento do EMR

O Amazon EMR usa o Puppet para instalar e configurar aplicações em um cluster. A análise dos logs fornecerá detalhes sobre a ocorrência de erros durante a fase de provisionamento de um cluster. Os logs podem ser acessados no cluster ou no S3 se os logs estiverem configurados para serem enviados ao S3.

Os logs são armazenados em /var/log/provision-node/apps-phase/0/{UUID}/puppet.log no disco e em s3://<LOG LOCATION>/<CLUSTER ID>/node/<EC2 INSTANCE ID>/provision-node/apps-phase/0/{UUID}/puppet.log.gz.

Mensagens de erro comuns

Mensagem de erro Causa

Puppet (err): Systemd start for emr-record-server failed! journalctl log for emr-record-server:

Falha ao iniciar o EMR Record Server. Veja abaixo os logs do EMR Record Server.

Puppet (err): Systemd start for emr-record-server failed! journalctl log for emrsecretagent:

O agente secreto do EMR falhou ao iniciar. Veja abaixo os logs do agente secreto.

/Stage[main]/Ranger_plugins::Ranger_hive_plugin/Ranger_plugins::Prepare_two_way_tls[configure 2-way TLS in Hive plugin]/Exec[create keystore and truststore for Ranger Hive plugin]/returns (notice): 140408606197664:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:707:Expecting: ANY PRIVATE KEY

O certificado TLS privado do Secret Manager para o certificado do plug-in Apache Ranger não está no formato correto ou não é um certificado privado. Consulte Certificados TLS para ver os formatos de certificado.

/Stage[main]/Ranger_plugins::Ranger_s3_plugin/Ranger_plugins::Prepare_two_way_tls[configure 2-way TLS in Ranger s3 plugin]/Exec[create keystore and truststore for Ranger amazon-emr-s3 plugin]/returns (notice): An error occurred (AccessDeniedException) when calling the GetSecretValue operation: User: arn:aws:sts::XXXXXXXXXXX:assumed-role/EMR_EC2_DefaultRole/i-XXXXXXXXXXXX is not authorized to perform: secretsmanager:GetSecretValue on resource: arn:aws:secretsmanager:us-east-1:XXXXXXXXXX:secret:AdminServer-XXXXX

O perfil do perfil de instância do EC2 não tem as permissões corretas para recuperar os certificados TLS do Secrets Agent.

Verificar logs do SecretAgent

Os logs do Secret Agent estão localizados em /emr/secretagent/log/ em um nó do EMR ou no diretório s3://<LOG LOCATION>/<CLUSTER ID>/node/<EC2 INSTANCE ID>/daemons/secretagent/ do S3.

Mensagens de erro comuns

Mensagem de erro Causa

Exception in thread "main" com.amazonaws.services.securitytoken.model.AWSSecurityTokenServiceException: User: arn:aws:sts::XXXXXXXXXXXX:assumed-role/EMR_EC2_DefaultRole/i-XXXXXXXXXXXXXXX is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::XXXXXXXXXXXX:role/*RangerPluginDataAccessRole* (Service: AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; Request ID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX; Proxy: null)

A exceção acima significa que o perfil do perfil de instância do EC2 do EMR não tem permissões para assumir o perfil RangerPluginDataAccessRole. Consulte Perfis do IAM para integração nativa com o Apache Ranger.

ERROR qtp54617902-149: Web App Exception Occurred

javax.ws.rs.NotAllowedException: HTTP 405 Method Not Allowed

Esses erros podem ser ignorados com segurança.

Verificar logs do Record Server (para SparkSQL)

Os logs do EMR Record Server estão disponíveis em /var/log/emr-record-server/ em um nó do EMR, ou podem ser encontrados no diretório s3://<LOG LOCATION>/<CLUSTER ID>/node/<EC2 INSTANCE ID>/daemons/emr-record-server/ do S3.

Mensagens de erro comuns

Mensagem de erro Causa

InstanceMetadataServiceResourceFetcher:105 - [] Fail to retrieve token com.amazonaws.SdkClientException: Failed to connect to service endpoint

O agente secreto do EMR não foi exibido ou está tendo um problema. Inspecione os logs do SecretAgent em busca de erros e o script puppet para determinar se houve qualquer erro de provisionamento.