

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

# Invio di lavoro Pig
<a name="emr-pig-launch"></a>

Questa sezione illustra l'invio di lavoro Pig a un cluster Amazon EMR. Gli esempi che seguono generano un report contenente il numero totale di byte trasferiti, un elenco dei primi 50 indirizzi IP, un elenco dei primi 50 referrer esterni e i primi 50 termini di ricerca in Bing e Google. Lo script Pig si trova nel bucket Amazon S3 `s3://elasticmapreduce/samples/pig-apache/do-reports2.pig`. I dati di input si trovano nel bucket Amazon S3 `s3://elasticmapreduce/samples/pig-apache/input`. L'output viene salvato in un bucket Amazon S3.

## Invio di lavoro Pig mediante la console di Amazon EMR
<a name="ConsoleCreatingaPigJob"></a>

Questo esempio descrive come utilizzare la console di Amazon EMR per aggiungere una fase Pig a un cluster. 

**Per inviare una fase Pig**

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

1. Scegliere **Creare un cluster** per creare un cluster con Pig installato. Per i passaggi su come creare un cluster, consulta [Pianificare e configurare un cluster Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-gs.html#emr-getting-started-plan-and-configure).

1. Aprire una finestra del terminale e utilizzare SSH nel nodo principale del cluster seguendo la procedura descritta in [Connettersi al nodo principale tramite SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html). Una volta fatto questo, seguire i passaggi successivi.

   ```
   sudo mkdir -p /home/hadoop/lib/pig/
   sudo aws s3 cp s3://elasticmapreduce/libs/pig/0.3/piggybank-0.3-amzn.jar /home/hadoop/lib/pig/piggybank.jar
   ```

1. Nella console, fare clic su **Cluster List (Elenco cluster)** e selezionare il nome del cluster creato.

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)**, scegliere **Pig program (programma Pig)**.
   + Per **Name (Nome)**, accettare il nome predefinito (programma Pig) o digitare un nuovo nome.
   + Per **Script S3 location (Percorso script S3)**, digitare il percorso dello script Pig. Ad esempio: **s3://elasticmapreduce/samples/pig-apache/do-reports2.pig**.
   + Per **Script S3 location (Percorso script S3)**, digitare il percorso dei dati di input. Ad esempio: **s3://elasticmapreduce/samples/pig-apache/input**.
   + Per **Output S3 location (Percorso S3 output)**, digita il nome del bucket di output Amazon S3.
   + Lasciare vuoto il campo **Arguments (Argomenti)**.
   + 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)**. Una volta completato il passaggio, controllare il bucket Amazon S3 per confermare che i file di output della fase Pig siano presenti.

## Invia il lavoro di Pig utilizzando il AWS CLI
<a name="emr-pig-submit-work"></a>

**Per inviare un passo Pig usa il AWS CLI**

Quando avvii un cluster utilizzando il AWS CLI, usa il `--applications` parametro per installare Pig. Per inviare una fase Pig, utilizzare il parametro `--steps`. 

1. Per avviare un cluster con Pig installato, digita il seguente comando, sostituendo *myKey* e *amzn-s3-demo-bucket/* con il nome della tua coppia di key pair EC2 e del bucket Amazon S3.

   ```
   aws emr create-cluster \
   --name "Test cluster" \
   --log-uri s3://amzn-s3-demo-bucket/ \
   --release-label emr-5.36.2 \
   --applications Name=Pig \
   --use-default-roles \
   --ec2-attributes KeyName=myKey \
   --instance-type m5.xlarge \
   --instance-count 3
   ```
**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, rimuoverli o sostituirli con un accento circonflesso (^).

   Quando si specifica il numero di istanze senza utilizzare il parametro `--instance-groups`, viene avviato un singolo nodo master 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 EMR predefinito e il profilo dell'istanza EC2, digita `aws emr create-default-roles` per crearli prima di digitare il sottocomando `create-cluster`.

1. Per inviare una fase Pig, inserisci il seguente comando, sostituendo *myClusterId* e *amzn-s3-demo-bucket* inserendo l'ID del cluster e il nome del tuo bucket Amazon S3.

   ```
   aws emr add-steps \
   --cluster-id myClusterId \
   --steps Type=PIG,Name="Pig Program",ActionOnFailure=CONTINUE,Args=[-f,s3://elasticmapreduce/samples/pig-apache/do-reports2.pig,-p,INPUT=s3://elasticmapreduce/samples/pig-apache/input,-p,OUTPUT=s3://amzn-s3-demo-bucket/pig-apache/output]
   ```

   Questo comando restituirà un ID fase che può essere utilizzato per controllare lo `State` della fase.

1. Esegui una query sullo stato della fase con il comando `describe-step`.

   ```
   aws emr describe-step --cluster-id myClusterId --step-id s-1XXXXXXXXXXA
   ```

   Lo `State` della fase cambia da `PENDING` a `RUNNING` a `COMPLETED` durante la sua esecuzione. Una volta completato il passaggio, controllare il bucket Amazon S3 per confermare che i file di output della fase Pig siano presenti.

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