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à.
Debug avanzato in fasi con Amazon EMR
Se una fase di Amazon EMR ha esito negativo e hai inviato il lavoro utilizzando l'operazione API Step con un'AMI versione 5.x o successiva, in alcuni casi Amazon EMR può identificare e restituire la causa principale dell'errore nella fase insieme al nome del file di log pertinente e una parte della traccia di stack dell'applicazione mediante l'API. Ad esempio, è possibile identificare i seguenti errori:
-
Un errore Hadoop comune come una directory di output già esistente, una directory di input inesistente o un'applicazione con memoria insufficiente.
-
Errori Java, ad esempio un'applicazione compilata con una versione incompatibile di Java o eseguita con una classe principale introvabile.
-
Un problema di accesso agli oggetti archiviati in Amazon S3.
Queste informazioni sono disponibili utilizzando le operazioni e API. DescribeStepListSteps Il FailureDetailscampo StepSummaryrestituito da tali operazioni. Per accedere alle FailureDetails informazioni, usa la AWS CLI, la console o AWS l'SDK.
- Console
-
La nuova console Amazon EMR non offre il debug delle fasi. Tuttavia, è possibile visualizzare i dettagli della terminazione del cluster con la procedura seguente.
Per visualizzare i dettagli degli errori con la console
-
Accedi a e apri AWS Management Console la console Amazon EMR su https://console.aws.amazon.com /emr.
-
In EMR attivo EC2 nel riquadro di navigazione a sinistra, scegli Cluster, quindi seleziona il cluster che desideri visualizzare.
-
Prendi nota del valore Status (Stato) nella sezione Summary (Riepilogo) della pagina dei dettagli del cluster. Se lo stato è Terminated with errors (Terminato con errori), passa con il mouse sul testo per visualizzare i dettagli degli errori del cluster.
- CLI
-
Per visualizzare i dettagli degli errori con AWS CLI
-
Per ottenere i dettagli sugli errori relativi a un passaggio con AWS CLI, utilizzare il describe-step
comando.
aws emr describe-step --cluster-id j-1K48XXXXXHCB --step-id s-3QM0XXXXXM1W
L'output risulterà simile al seguente:
{
"Step": {
"Status": {
"FailureDetails": {
"LogFile": "s3://amzn-s3-demo-bucket/logs/j-1K48XXXXXHCB/steps/s-3QM0XXXXXM1W/stderr.gz",
"Message": "org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory s3://amzn-s3-demo-bucket/logs/beta already exists",
"Reason": "Output directory already exists."
},
"Timeline": {
"EndDateTime": 1469034209.143,
"CreationDateTime": 1469033847.105,
"StartDateTime": 1469034202.881
},
"State": "FAILED",
"StateChangeReason": {}
},
"Config": {
"Args": [
"wordcount",
"s3://amzn-s3-demo-bucket/input/input.txt",
"s3://amzn-s3-demo-bucket/logs/beta"
],
"Jar": "s3://amzn-s3-demo-bucket/jars/hadoop-mapreduce-examples-2.7.2-amzn-1.jar",
"Properties": {}
},
"Id": "s-3QM0XXXXXM1W",
"ActionOnFailure": "CONTINUE",
"Name": "ExampleJob"
}
}