

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
<a name="emr-enhanced-step-debugging"></a>

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 le [DescribeStep](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_DescribeStep.html)API. [ListSteps](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_ListSteps.html) Il [FailureDetails](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_FailureDetails.html)campo [StepSummary](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_StepSummary.html)restituito 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**

1. [Accedi a e apri Console di gestione AWS la console Amazon EMR su https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr)

1. In **EMR on EC2** (EMR su EC2), nel riquadro di navigazione a sinistra, scegli **Clusters** (Cluster) e seleziona il cluster da visualizzare.

1. 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 dell'errore 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"
    }
  }
  ```

------