Insuccesso del provisioning del cluster EMR - Amazon EMR

Insuccesso del provisioning del cluster EMR

Esistono diversi motivi alla base del mancato avvio di un cluster Amazon EMR. Di seguito sono riportati alcuni modi per diagnosticare il problema.

Verifica dei log di provisioning EMR

Amazon EMR utilizza Puppet per installare e configurare le applicazioni in un cluster. Esaminando i registri verranno forniti dettagli sulla presenza o meno di errori durante la fase di provisioning di un cluster. I log sono accessibili sul cluster o su S3 se sono configurati per essere inviati a S3.

I log vengono archiviati in /var/log/provision-node/apps-phase/0/{UUID}/puppet.log sul disco e s3://<LOG LOCATION>/<CLUSTER ID>/node/<EC2 INSTANCE ID>/provision-node/apps-phase/0/{UUID}/puppet.log.gz..

Messaggi di errore comuni

Messaggio di errore Causa

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

Impossibile avviare EMR Record Server. Consulta "Log di EMR Record Server" di seguito.

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

Impossibile avviare EMR Secret Agent. Consulta "Controllo dei log Secret Agent" di seguito.

/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

Il certificato TLS privato in Secrets Manager per il certificato del plug-in Apache Ranger non è nel formato corretto o non è un certificato privato. Consulta Certificati TLS per i formati dei certificati.

/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

Il ruolo del profilo dell'istanza EC2 non dispone delle autorizzazioni corrette per recuperare i certificati TLS da Secret Agent.

Controlla i log di Secret Agent

I log di Secret Agent si trovano in /emr/secretagent/log/ su un nodo EMR o nella directory s3://<LOG LOCATION>/<CLUSTER ID>/node/<EC2 INSTANCE ID>/daemons/secretagent/ in S3.

Messaggi di errore comuni

Messaggio di errore 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)

L'eccezione precedente indica che il ruolo del profilo dell'istanza EC2 EMR non dispone delle autorizzazioni per assumere il ruolo RangerPluginDataAccessRole. Per informazioni, consultare Ruoli IAM per l'integrazione nativa con Apache Ranger.

ERROR qtp54617902-149: Web App Exception Occurred

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

Puoi ignorare questi errori senza correre rischi.

Controllo dei log di EMR Record Server (per SparkSQL)

I log di EMR Record Server sono disponibili in /var/log/emr-record-server/ su un nodo EMR oppure possono essere consultati nella directory s3://<LOG LOCATION>/<CLUSTER ID>/node/<EC2 INSTANCE ID>/daemons/emr-record-server/ in S3.

Messaggi di errore comuni

Messaggio di errore Causa

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

EMR Secret Agent non è riuscito a presentarsi o sta riscontrando un problema. Verifica la presenza di errori nei log di Secret Agent e nello script puppet per determinare se si sono verificati errori di provisioning.