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
I seguenti errori sono comuni alla VPC configurazione in AmazonEMR.
Argomenti
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, devi creare un Internet Gateway e collegarlo al tuoVPC. 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, usaregion-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
suDEBUG
nel file/home/hadoop/conf/log4j.properties
nel cluster. Puoi controllare il file di logstderr
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-
Ad esempio, se il nome host fosse X.X.X.X.customdomain.com
.tldip-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://
mybucket
/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