Le cluster EMR n'a pas pu être provisionné - Amazon EMR

Le cluster EMR n'a pas pu être provisionné

Plusieurs raisons peuvent expliquer l'échec du démarrage d'un cluster Amazon EMR. Voici quelques méthodes pour diagnostiquer le problème.

Consulter les journaux de provisionnement EMR

Amazon EMR utilise Puppet pour installer et configurer des applications sur un cluster. L'examen des journaux permet de savoir si des erreurs se sont produites lors de la phase de provisionnement d'un cluster. Les journaux sont accessibles sur le cluster ou sur S3 si les journaux sont configurés pour être envoyés vers S3.

Les journaux sont stockés /var/log/provision-node/apps-phase/0/{UUID}/puppet.log sur le disque et s3://<LOG LOCATION>/<CLUSTER ID>/node/<EC2 INSTANCE ID>/provision-node/apps-phase/0/{UUID}/puppet.log.gz.

Messages d'erreur courants

Error message (Message d'erreur) Cause

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

Le serveur d'enregistrement EMR n'a pas pu démarrer. Consultez les journaux du serveur d'enregistrement EMR ci-dessous.

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

EMR Secret Agent n'a pas pu démarrer. Consultez la section Vérifier les journaux de Secret Agent ci-dessous.

/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

Le certificat TLS privé dans Secret Manager pour le certificat du plugin Apache Ranger n'est pas au bon format ou n'est pas un certificat privé. Consultez Certificat TLS pour les formats de certificats.

/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

Le rôle de profil d'instance EC2 ne dispose pas des autorisations appropriées pour récupérer les certificats TLS auprès de Secrets Agent.

Vérifiez les journaux de SecretAgent

Les journaux de l'agent secret se trouvent dans /emr/secretagent/log/ sur un nœud EMR ou dans le répertoire de S3 s3://<LOG LOCATION>/<CLUSTER ID>/node/<EC2 INSTANCE ID>/daemons/secretagent/.

Messages d'erreur courants

Error message (Message d'erreur) Cause

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'exception ci-dessus signifie que le rôle de profil d'instance EMR EC2 n'est pas autorisé à assumer le rôle RangerPluginDataAccessRole. Consultez Rôles IAM pour une intégration native avec Apache Ranger.

ERROR qtp54617902-149: Web App Exception Occurred

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

Vous pouvez ignorer ces erreurs.

Vérifiez les journaux du serveur d'enregistrement (pour SparkSQL)

Les journaux du serveur d'enregistrement EMR sont disponibles dans /var/log/emr-record-server/ sur un nœud EMR, ou ils se trouvent dans le répertoire s3://<LOG LOCATION>/<CLUSTER ID>/node/<EC2 INSTANCE ID>/daemons/emr-record-server/ dans S3.

Messages d'erreur courants

Error message (Message d'erreur) Cause

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

L'EMR SecretAgent ne s'est pas affiché ou rencontre un problème. Examinez les journaux SecretAgent pour détecter les erreurs et le script de marionnette pour déterminer s'il y a eu des erreurs de provisionnement.