VPCerrori durante le operazioni EMR del cluster Amazon - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

VPCerrori durante le operazioni EMR del cluster Amazon

I seguenti errori sono comuni alla VPC configurazione in AmazonEMR.

Configurazione sottorete non valida

Nella pagina Cluster Details (Dettagli cluster), nel campo Status (Stato), verrà visualizzato un errore simile al seguente:

The subnet configuration was invalid: Cannot find route to InternetGateway in main RouteTable rtb-id for vpc vpc-id.

Per risolvere questo problema, è necessario creare un Internet Gateway e collegarlo al VPC Per ulteriori informazioni, vedi Aggiungere un gateway Internet al tuo VPC.

In alternativa, verifica di aver configurato il tuo account VPC con il supporto Enable DNS resolution e Enable DNS hostname abilitato. Per ulteriori informazioni, consulta Using DNS with your VPC.

Set di DHCP opzioni mancanti

Riscontri un errore di fase nel log di sistema del cluster (syslog) simile al seguente:

ERROR org.apache.hadoop.security.UserGroupInformation (main): PriviledgedActionException as:hadoop (auth:SIMPLE) cause:java.io.IOException: org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException: Application with id 'application_id' doesn't exist in RM.

oppure

ERROR org.apache.hadoop.streaming.StreamJob (main): Error Launching job : org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException: Application with id 'application_id' doesn't exist in RM.

Per risolvere questo problema, è necessario configurare un set di opzioni VPC che includa un set di DHCP opzioni i cui parametri siano impostati sui seguenti valori:

Nota

Se utilizzate la regione AWS GovCloud (Stati Uniti occidentali), impostate domain-name su us-gov-west-1.compute.internal anziché sul valore utilizzato nell'esempio seguente.

  • domain-name = ec2.internal

    Utilizza ec2.internal se la regione è Stati Uniti orientali (Virginia settentrionale). Per altre regioni, usa region-name.compute.internal. Ad esempio in us-west-2, usa domain-name =. us-west-2.compute.internal

  • domain-name-servers = AmazonProvidedDNS

Per ulteriori informazioni, vedere Set di opzioni. DHCP

Errori di autorizzazioni

Un errore nel log stderr per una fase indica che una risorsa Amazon S3 non dispone delle autorizzazioni appropriate. Si tratta di un errore 403 simile a questo:

Exception in thread "main" com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: REQUEST_ID

Se ActionOnFailure è impostato suTERMINATE_JOB_FLOW, ciò comporterebbe la terminazione del cluster con lo stato,SHUTDOWN_COMPLETED_WITH_ERRORS.

Alcuni modi per risolvere questo problema sono:

  • Se utilizzi una policy di bucket Amazon S3 all'interno di unVPC, assicurati di consentire l'accesso a tutti i bucket creando un VPC endpoint e selezionando Consenti tutto nell'opzione Policy durante la creazione dell'endpoint.

  • Assicurati che tutte le policy associate alle risorse S3 includano la modalità di avvio del clusterVPC.

  • Prova a eseguire il seguente comando dal cluster per verificare che sia possibile accedere al bucket

    hadoop fs -copyToLocal s3://path-to-bucket /tmp/
  • Per ottenere informazioni di debug più specifiche, imposta il parametro log4j.logger.org.apache.http.wire su DEBUG nel file /home/hadoop/conf/log4j.properties nel cluster. Puoi controllare il file di log stderr dopo aver provato ad accedere al bucket dal cluster. Il file di log fornirò informazioni più dettagliate:

    Access denied for getting the prefix for bucket - us-west-2.elasticmapreduce with path samples/wordcount/input/ 15/03/25 23:46:20 DEBUG http.wire: >> "GET /?prefix=samples%2Fwordcount%2Finput%2F&delimiter=%2F&max-keys=1 HTTP/1.1[\r][\n]" 15/03/25 23:46:20 DEBUG http.wire: >> "Host: us-west-2.elasticmapreduce.s3.amazonaws.com[\r][\n]"

Errori che generano START_FAILED

Prima della AMI 3.7.0, per le VPCs quali veniva specificato un nome host, Amazon EMR mappa i nomi host interni della sottorete con indirizzi di dominio personalizzati come segue:. ip-X.X.X.X.customdomain.com.tld Ad esempio, se il nome host fosse ip-10.0.0.10 e l'opzione del VPC nome di dominio fosse impostata su customdomain.com, il nome host risultante mappato da Amazon sarebbe. EMR ip-10.0.1.0.customdomain.com Viene aggiunta una voce in /etc/hosts per risolvere il nome host in 10.0.0.10. Questo comportamento è stato modificato con la AMI versione 3.7.0 e EMR ora Amazon rispetta la DHCP configurazione dell'intero. VPC In passato, i clienti potevano anche specificare la mappatura del nome host tramite un'operazione di bootstrap.

Se desideri mantenere questo comportamento, devi fornire la configurazione della risoluzione richiesta per il dominio personalizzato DNS e la relativa risoluzione.

Si Terminated with errors raggruppa e NameNode non riesce ad avviarsi

Quando si avvia un EMR cluster in un ambiente VPC che utilizza un nome di DNS dominio personalizzato, il cluster potrebbe fallire con il seguente messaggio di errore nella console:

Terminated with errors On the master instance(instance-id), bootstrap action 1 returned a non-zero return code

L'errore è il risultato dell' NameNode impossibilità di avviarsi. Ciò comporterà il seguente errore rilevato nei NameNode log, il cui formato Amazon URI S3 è: s3://amzn-s3-demo-bucket/logs/cluster-id/daemons/master instance-id/hadoop-hadoop-namenode-master node hostname.log.gz

2015-07-23 20:17:06,266 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem (main): Encountered exception loading fsimage java.io.IOException: NameNode is not formatted. at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:212) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1020) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:739) at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:537) at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:596) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:765) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:749) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1441) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1507)

Ciò è dovuto a un potenziale problema per cui un'EC2istanza può avere più set di nomi di dominio completi quando avvia EMR i cluster in aVPC, che utilizza sia un server fornito sia un DNS server personalizzato AWS fornito dall'utente. DNS Se il DNS server fornito dall'utente non fornisce alcun record pointer (PTR) per alcun record A utilizzato per designare i nodi in un EMR cluster, i cluster non si avvieranno se configurati in questo modo. La soluzione consiste nell'aggiungere 1 PTR record per ogni record A creato all'avvio di un'EC2istanza in una delle sottoreti di. VPC