

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à.

# Elaborazione di dati con un JAR personalizzato
<a name="UseCase_CustomJar"></a>

Un JAR personalizzato esegue un programma Java compilato che viene caricato su Amazon S3. Devi compilare il programma in base alla versione di Hadoop che desideri avviare e invia una fase `CUSTOM_JAR` al tuo cluster Amazon EMR. Per ulteriori informazioni sulla compilazione di un file JAR, consulta [Creazione di file binari con Amazon EMR](emr-build-binaries.md).

Per ulteriori informazioni sulla creazione di un' MapReduce applicazione Hadoop, consulta il [MapReduce Tutorial](http://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html) nella documentazione di Apache Hadoop.

**Topics**
+ [

# Invio di una fase JAR personalizzata
](emr-launch-custom-jar-cli.md)

# Invio di una fase JAR personalizzata
<a name="emr-launch-custom-jar-cli"></a>

Un JAR personalizzato esegue un programma Java compilato che viene caricato su Amazon S3. Devi compilare il programma in base alla versione di Hadoop che desideri avviare e invia una fase `CUSTOM_JAR` al tuo cluster Amazon EMR. Per ulteriori informazioni sulla compilazione di un file JAR, consulta [Creazione di file binari con Amazon EMR](emr-build-binaries.md).

[Per ulteriori informazioni sulla creazione di un' MapReduce applicazione Hadoop, consultate il Tutorial nella documentazione di Apache Hadoop. MapReduce ](http://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html)

Questa sezione descrive le basi per l'invio di una fase JAR personalizzata in Amazon EMR. L'invio di una fase JAR personalizzata consente di scrivere uno script per elaborare i dati con il linguaggio di programmazione Java. 

## Invio di una fase JAR personalizzata utilizzando la console
<a name="ConsoleCreatingaCustomJARJob"></a>

Questo esempio descrive come utilizzare la console di Amazon EMR per inviare una fase JAR personalizzata a un cluster in esecuzione.

**Per inviare una fase JAR personalizzata utilizzando la console**

1. [Apri la console Amazon EMR in /emr. https://console.aws.amazon.com](https://console.aws.amazon.com/emr/)

1. In **Cluster List (Elenco cluster)**, selezionare il nome del cluster.

1. Scorrere fino alla sezione **Steps (Fasi)** ed espanderla, quindi scegliere **Add step (Aggiungi fase)**.

1. Nella finestra di dialogo **Add Step (Aggiungi fase)**:
   + Per **Step Type (Tipo di fase)** selezionare **Custom JAR (JAR personalizzato)**.
   + Per **Name (Nome)**, accettare il nome di default, ovvero Custom JAR (JAR personalizzato), o digitare un nuovo nome.
   + Per **JAR S3 location (Posizione JAR S3)**, digitare o selezionare il percorso del file JAR. La posizione JAR può essere un percorso in S3 o una classe java completa nel classpath. 
   + Per **Arguments (Argomenti)**, digitare eventuali argomenti obbligatori come stringhe separate da spazi o lasciare il campo vuoto.
   + Per **Action on failure (Operazione in caso di errore)**, accettare l'opzione predefinita, ovvero **Continue (Continua)**.

1. Scegliere **Add (Aggiungi)**. La fase viene visualizzata nella console con lo stato Pending (In attesa). 

1. Durante l'esecuzione della fase, lo stato passa da Pending (In attesa) a Running (In esecuzione) a Completed (Completata). Per aggiornare lo stato, scegliere l'icona **Refresh (Aggiorna)** sopra la colonna Actions (Operazioni). 

## Avvio di un cluster e invio di un passaggio JAR personalizzato con AWS CLI
<a name="emr-dev-create-jar-cli"></a>

**Per avviare un cluster e inviare un passaggio JAR personalizzato con AWS CLI**

Per avviare un cluster e inviare un passaggio JAR personalizzato con AWS CLI, digitare il `create-cluster` sottocomando con il `--steps` parametro.
+ Per avviare un cluster e inviare un passaggio JAR personalizzato, digita il seguente comando, sostituiscilo *myKey* con il nome della tua coppia di key pair EC2 e sostituiscilo *amzn-s3-demo-bucket* con il nome del tuo bucket.

  ```
  aws emr create-cluster --name "Test cluster" --release-label emr-7.12.0 \
  --applications Name=Hue Name=Hive Name=Pig --use-default-roles \
  --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 \
  --steps Type=CUSTOM_JAR,Name="Custom JAR Step",ActionOnFailure=CONTINUE,Jar=pathtojarfile,Args=["pathtoinputdata","pathtooutputbucket","arg1","arg2"]
  ```
**Nota**  
I caratteri di continuazione della riga Linux (\$1) sono inclusi per questioni di leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuovili o sostituiscili con un accento circonflesso (^).

  Quando specifichi il numero di istanze senza il parametro `--instance-groups`, viene avviato un singolo nodo primario e le istanze rimanenti vengono avviate come nodi principali. Tutti i nodi utilizzano il tipo di istanza specificato nel comando.
**Nota**  
Se in precedenza non sono stati creati il ruolo del servizio Amazon EMR predefinito e il profilo dell'istanza EC2, digita `aws emr create-default-roles` per crearli prima di digitare il sottocomando `create-cluster`.

  Per ulteriori informazioni sull'utilizzo dei comandi Amazon EMR in AWS CLI, consulta. [https://docs.aws.amazon.com/cli/latest/reference/emr](https://docs.aws.amazon.com/cli/latest/reference/emr)

## Dipendenze da terze parti
<a name="emr-custom-jar-dependency"></a>

A volte può essere necessario MapReduce includerli nel classpath da utilizzare con JARs il programma. Ci sono due possibilità per farlo:
+ Includere l'`--libjars s3://URI_to_JAR` nelle opzioni di fase per la procedura in [Avvio di un cluster e invio di un passaggio JAR personalizzato con AWS CLI](#emr-dev-create-jar-cli).
+ Avvia il cluster con un'impostazione `mapreduce.application.classpath` modificata in `mapred-site.xml`. Utilizza la classificazione della configurazione `mapred-site`. Per creare il cluster con lo step using AWS CLI, questo dovrebbe essere il seguente:

  ```
  aws emr create-cluster --release-label emr-7.12.0 \
  --applications Name=Hue Name=Hive Name=Pig --use-default-roles \
  --instance-type m5.xlarge --instance-count 2  --ec2-attributes KeyName=myKey \
  --steps Type=CUSTOM_JAR,Name="Custom JAR Step",ActionOnFailure=CONTINUE,Jar=pathtojarfile,Args=["pathtoinputdata","pathtooutputbucket","arg1","arg2"] \
  --configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.json
  ```

  `myConfig.json`:

  ```
  [
      {
        "Classification": "mapred-site",
        "Properties": {
          "mapreduce.application.classpath": "path1,path2"
        }
      }
    ]
  ```

  L'elenco dei percorsi separati da virgole dovrebbe essere aggiunto al percorso della classe JVM per ogni attività.